拝承です。

サーバエンジニアの個人的メモ。主にCentOSとMac。たまにWindows、カメラネタもあり。

CentOS 7にAnsibleを導入

Vagrantで立てたCentOS 7の仮想マシン間で設定を自動化するため、Ansibleを導入してみる。

Ansibleのメリット

  • クライアント側にツールのインストールが不要
  • YAMLファイルのシンプルな記法

環境

マシン名: 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

SSH password: vagrant

192.168.33.11 | SUCCESS => {

    "changed": false, 

    "ping": "pong"

}

-m モジュール名: 指定したモジュールを実行

-k: パスワード認証時にパスワード入力を求める

無事実行された

 任意のコマンドを実行

[vagrant@vm1 ~]$ ansible 192.168.33.11 -k -a 'uname -a'

SSH password: vagrant

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 'ほげほげ': モジュールの引数を指定。 モジュールを指定しない場合、記述したコマンドをそのまま実行

これも実行できた

参考

yteraoka.github.io