CentOS-7 迅速導入 Ansible 自動化ツール

Ansible 自動化ツールをインストールします。

Pythonのバージョンを確認する

python -V

yum リポジトリに ansible rpm パッケージがあるかどうかを確認する

yum list |grep ansible

ここに画像の説明を挿入
ansible サービスをインストールする

yum install -y ansible

ここに画像の説明を挿入

Ansible 構成とホストリストのホストを変更する

1) ansible を使用して初めてクライアントに接続する場合は、コマンド プロンプトを閉じます。

sed -i "s@\#host_key_checking = False@host_key_checking = False@g" /etc/ansible/ansible.cfg

ログのパスを指定します。

sed -i "s@\#log_path = \/var\/log\/ansible.log@log_path = \/var\/log\/ansible.log@g" /etc/ansible/ansible.cfg

2) すべてのホスト IP を /etc/ansible/hosts ファイルに追加します。
ホスト グループとホストを定義します。

cat >/etc/ansible/hosts<<EOF
[app]
192.168.137.132
192.168.137.133
EOF

ここに画像の説明を挿入

補充:

默认ssh的端口为22端口,如果为其他端口号,可在主机名后面加上端口号;
如:192.168.159.131:9604 ,也可以修改配置文件中的remote_port变量值;
/etc/ansible/hosts也可以定义一个主机范围,如192.168.159.[100:200] ,表示192.168.159.100 - 192.168.159.200 的主机。

SSH 公開キー認証 (パスワードなしのログイン) を作成および構成します。

プロンプトに従ってデフォルト設定を使用し、Enter キーを押し続けます。

ssh-keygen -t rsa

ここに画像の説明を挿入
ansible コマンドを使用して公開キーを各ホストに配布します。

ansible all -m authorized_key -a "user=root key='{
    
    { lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko

ここに画像の説明を挿入
192.168.137.133 にログインして表示します。ここに画像の説明を挿入
Ansible 構成を変更し、秘密キー ファイルのパスを指定します。

sed -i "s@\#private_key_file = \/path\/to\/file@private_key_file = \/root\/.ssh\/id_rsa@g" /etc/ansible/ansible.cfg

ping コマンドのテスト:

ansible all -m ping

ここに画像の説明を挿入

ansible-playbook を使用して mysql をバッチでインストールします。

cd /etc/ansible		#进入目录
mkdir deploy-yml	#创建目录
cat >/etc/ansible/deploy-yml/mysql.yml<<EOF	  #创建 mysql.yml 文件
- hosts: mysql-test
  remote_user: root
  gather_facts: False
  roles:
    - mysql
EOF

ここに画像の説明を挿入

ロールを入力して mysql ディレクトリを作成し、次のディレクトリとファイルを作成します。

一時的に使用されないディレクトリは空です: テンプレート、ファイル、ハンドラー、メタ
ここに画像の説明を挿入

/etc/ansible/roles/mysql/ の下にディレクトリ構造を作成します。

mkdir files handlers meta tasks templates vars

ここに画像の説明を挿入

タスクの下に copy.yml を作成します

cat >tasks/copy.yml<<EOF
#复制源码至目标服务器
- name: copy mysql source code to client
  copy: src={
    
    {
    
    mysql_package}} dest={
    
    {
    
    install_dir}} owner=root group=root
#复制模板文件至目标服务器
- name: copy mysql install script to client
  template: src={
    
    {
    
    shell_dir}} dest={
    
    {
    
    install_dir}} owner=root group=root mode=0775
EOF

ここに画像の説明を挿入

タスクの下に install.yml を作成します

cat >tasks/install.yml<<EOF
#执行模板文件进行安装
- name: install mysql
  shell: bash {
    
    {
    
    install_dir}}/{
    
    {
    
    shell_name}}
EOF

ここに画像の説明を挿入

タスクの下に main.yml を作成します

cat >tasks/main.yml<<EOF
#引用copy、install模块
- include: copy.yml
- include: install.yml
EOF

ここに画像の説明を挿入

vars の下に main.yml を作成します

cat >vars/main.yml<<EOF
mysql_version: mysql-5.7.12
#这里事先下好了包 放在指定路径下即可
mysql_package: /usr/local/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
shell_name : insmysql.sh
install_dir: /usr/local
shell_dir: /install/insmysql.sh
EOF

ここに画像の説明を挿入

/etc/ansible/hosts に mysql-test グループを作成し、mysql をインストールする必要がある IP を追加します。

ここではテストに 1 台のマシンのみが使用されており、それらのマシンは mysql-test グループの下にバッチで直接追加できます。 - すべてのマシンは SSH フリー、パスワードなしのログインである必要があります。

cat >>/etc/ansible/hosts<<EOF
[mysql-test]
192.168.137.133
EOF

ansible-playbook -C mysql.yml でテストするここに画像の説明を挿入

テストに問題がなければ、「 ansible-playbook mysql.yml 」が実行されます。

おすすめ

転載: blog.csdn.net/wkl1007/article/details/103510310