Ansibleの基礎

  • 55
    Like
  • 1
    Comment
More than 1 year has passed since last update.

CentOS6での利用方法

CentOS(ホスト) -> CentOS(リモート側)

予備知識

AnsibleはSSHでリモート側にログインしてコマンド類を叩く設計になっています。
そのため、リモート側でSSHログインができるようにしておきましょう。
(念のため、ログインするユーザと、コマンドを実行するユーザを別にすることも可能です)

インストール

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum install ansible -y

実行確認

アクセス先のホストは192.168.1.20、アクセスユーザはrasennとします。
鍵認証でアクセスするなら(パスワードなしsshができれば)--ask-pass --ask-sudo-passは必要なく、パスワードも要求されません。
(マニュアル見ると-kで2つの代用できるように書いてありますが、sudoが必要な場合にはできませんでした。)

echo 192.168.1.20 > hosts

ansible 192.168.1.19 -i hosts  -m ping -u rasenn --ask-pass --ask-sudo-pass
SSH password: 
192.168.1.20 | success >> {
    "changed": false, 
    "ping": "pong"
}

コマンドの内容としては、下記のとおりです。
ansible ホスト -i ホストリストファイル -m 実行モジュール -u ユーザ

playbookを利用した実行

playbookを利用した実行には2つのファイルが必要になります。

  • ホストファイル
  • playbookファイル

ホストファイル書き方

リモート側のホスト名を記載します。グループ単位で記載が可能です。
下記の例では「gluster-servers」と「hadoop-servers」の2つのグループを記載しています。

[gluster-servers]
192.168.1.20
192.168.1.21
192.168.1.22

[hadoop-servers]
192.168.1.30
192.168.1.31
192.168.1.32

playbookの書き方

yaml形式でかけます。最初のhostsはhostsファイルで記載したどのグループを対象にするかを記載しています。
後はだいたいわかると思うので省略。

playbookファイル

simple-playbook.yml
- hosts: gluster-servers
  sudo: yes
  tasks:
    - name: be sure glusterfs-fuse is installed
      yum: name=glusterfs-fuse state=installed

    - name: be sure glusterfs is installed
      yum: name=glusterfs state=installed

    - name: be sure httpd is runnning and enabled
      service: name=httpd state=running enabled=yes

実行コマンド

実行は下記の通り行います。
他にもいろいろオプションはありますが、シンプルに行って下記の感じです。

ansible-playbook simple-playbook.yml -i hosts  -u rasenn --ask-pass --ask-sudo-pass

上記のコマンドでhosts内に書かれたgluster-serversにのサーバにyumで色々入ります

簡単な補足をするとiオプションは読み込むhostsファイルを指定し、-uはユーザを指定します。--ask-passはsshログインのパスワードをキーボード入力する、--ask-sudo-passはsudoパスワードをキーボド入力する、という指定になります。

パスワード無しSSHログインが可能な場合は--ask-passは不要ですが、立ち上げて壊すVMにいちいち鍵なしログイン設定をするのが面倒なので、2つをつけました

とりあえず、基本はこんなところでしょうか?
playbookの書き方を覚えると色々便利な気がします。
面倒なのでとりあえずここまでで。

(しかしchefと比べて気軽だなおい。。。)

[参照]
http://devopsu.com/guides/ansible-centos-fedora.html