2015年4月22日水曜日

ansible で playbook を使ってみる

ansibleを使ってみた


NTPパッケージをアップデートしてみる

以下の構成で検証
管理サーバ:sigure
対象サーバ:yuzuki

前提条件

今回ansibleユーザーで通信し、rootにsudoを行って、update作業を行うます。
上記から分かる通り、
・ansibleユーザでのログイン
・ansible→rootへのsudo
の権限が必要となります。
事前に、SSHのノンパスログインと、sudoコマンドもNOPASSWDを付けておきます。

hostsをつくる

$ cd /etc/ansible
$ cp -pi hosts{,.org}
$ cat << EOF > hosts
[testserver]
yuzuki.fr.taterole.net
EOF

playbookをつくる

$ mkdir playbook
$ cat << EOF > test.yml
- name: ntp update
  hosts: testserver
  remote_user: ansible
  sudo: yes
  vars:
    pkg: ntp
  tasks:
    - name: yum clean
      shell: yum clean all
    - name: before-check
      shell: yum list "{{pkg}}"
      register: before_check
    - debug: msg="{{before_check.stdout_lines}}"
    - name: update "{{pkg}}"
      yum: name="{{pkg}}" state=latest
    - name: Check again
      shell: yum list "{{pkg}}"
      register: after_check
    - debug: msg="{{after_check.stdout_lines}}"

実行してみる

$ pwd
================================================================================
/etc/ansible
================================================================================

$ ansible-playbook -i hosts playbook/test.yml
================================================================================
 [WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (i.e. yum update gmp).

PLAY [ntp update] *************************************************************
GATHERING FACTS ***************************************************************
ok: [yuzuki.fr.taterole.net]
TASK: [yum clean] *************************************************************
changed: [yuzuki.fr.taterole.net]
TASK: [before-check] **********************************************************
changed: [yuzuki.fr.taterole.net]
TASK: [debug msg="{{before_check.stdout_lines}}"] *****************************
ok: [yuzuki.fr.taterole.net] => {
    "msg": "['Loaded plugins: priorities, update-motd, upgrade-helper', 'Installed Packages', 'ntp.x86_64                     4.2.6p5-27.23.amzn1                     installed']"
}
TASK: [update "{{pkg}}"] ******************************************************
ok: [yuzuki.fr.taterole.net]
TASK: [Check again] ***********************************************************
changed: [yuzuki.fr.taterole.net]
TASK: [debug msg="{{after_check.stdout_lines}}"] ******************************
ok: [yuzuki.fr.taterole.net] => {
    "msg": "['Loaded plugins: priorities, update-motd, upgrade-helper', 'Installed Packages', 'ntp.x86_64                     4.2.6p5-27.23.amzn1                     installed']"
}
PLAY RECAP *****************************************************************
================================================================================
こんな感じで実行される。(例によって冒頭のWARNINGはシカトしてください)

----
おわり

0 件のコメント:

コメントを投稿