CentOS 7にAnsibleを導入
Vagrantで立てたCentOS 7の仮想マシン間で設定を自動化するため、Ansibleを導入してみる。
Ansibleのメリット
環境
マシン名: vm1
OS: CentOS 7
IPアドレス: 192.168.33.10
用途: Ansibleサーバ
マシン名: vm2
OS: CentOS 7
IPアドレス: 192.168.33.11
用途: Ansibleクライアント
サーバ設定
インストール
CentOS 7のリポジトリにAnsibleは入っていないので、まずはEPELを使えるようにする
[root@vm1 vagrant]# yum install epel-release
そしてAnsibleをインストール
[root@vm1 vagrant]# yum install ansible
インストール完了後、バージョンを確認してみる
[root@vm1 vagrant]# ansible --version
ansible 2.0.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
動いた
hostsファイル編集
Ansibleの操作対象サーバをhostsファイルに登録する必要がある
[vagrant@vm1 .ssh]$ vi /etc/ansible/hosts
vm2のIPアドレスを登録。webserversというグループ名にしておく
[webservers]
192.168.33.11
サンプルモジュール実行
[vagrant@vm1 ~]$ ansible 192.168.33.11 -m ping -k
192.168.33.11 | SUCCESS => {
"changed": false,
"ping": "pong"
}
-m モジュール名: 指定したモジュールを実行
-k: パスワード認証時にパスワード入力を求める
無事実行された
任意のコマンドを実行
[vagrant@vm1 ~]$ ansible 192.168.33.11 -k -a 'uname -a'
192.168.33.11 | SUCCESS | rc=0 >>
Linux vm2.localdomain 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
-a 'ほげほげ': モジュールの引数を指定。 モジュールを指定しない場合、記述したコマンドをそのまま実行
これも実行できた