ansible – copyモジュールにはbackup=yesを

  • 投稿者:
  • 投稿カテゴリー:ansible

インストール

# sources.listに追記する
===
deb http://ftp.jp.debian.org/debian wheezy-backports main contrib non-free
===
root@hostname:/home/shimizu# aptitude update
...

root@hostname:/home/shimizu# aptitude install ansible
以下の新規パッケージがインストールされます:
  ansible libgmp10{a} libyaml-0-2{a} python-crypto{a} python-httplib2{a} python-jinja2{a}
  python-markupsafe{a} python-paramiko{a} python-selinux{a} python-yaml{a}
...

root@hostname:/home/shimizu# cd /etc/ansible
root@hostname:/etc/ansible# cat hosts
49.212.204.46

root@hostname:/etc/ansible# ansible -i hosts all -m ping -u shimizu --ask-pass
SSH password:
49.212.204.46 | success >> {
    "changed": false,
    "ping": "pong"
}

playbookを利用する

root@hostname:/etc/ansible# cat playbook1.yml
---
- hosts: all
  sudo: yes
  tasks:
    - name: test
      ping:
root@hostname:/etc/ansible# ansible-playbook playbook1.yml -u shimizu --ask-sudo-pass
sudo password:

PLAY [all] ********************************************************************

GATHERING FACTS ***************************************************************
ok: [49.212.204.46]

TASK: [test] ******************************************************************
ok: [49.212.204.46]

PLAY RECAP ********************************************************************
49.212.204.46              : ok=2    changed=0    unreachable=0    failed=0

### 各モジュールの説明を確認可能 ###
root@hostname:/etc/ansible# ansible-doc copy
...

root@hostname:/etc/ansible# cat playbook1.yml
---
- hosts: all
  sudo: yes
  tasks:
    - name: copy
      copy: src=test_ansible.txt dest=/home/shimizu owner=root group=root mode=0644

root@hostname:/etc/ansible# ansible-playbook playbook1.yml -u shimizu --ask-pass --ask-sudo-pass
SSH password:
sudo password [defaults to SSH password]:

PLAY [all] ********************************************************************

GATHERING FACTS ***************************************************************
ok: [49.212.204.46]

TASK: [copy] ******************************************************************
changed: [49.212.204.46]

PLAY RECAP ********************************************************************
49.212.204.46              : ok=2    changed=1    unreachable=0    failed=0

copyモジュールについて

冪等性が保証されているため、ファイルの内容が同じ(ハッシュを比較する)であればcopyしない
そして変更があった場合は、上書きcopyされる
以下のようにbackup=yesをつけると
リモートに日付がついたバックアップ(test_ansible.txt.2015-06-01@00:39~)が作成される

root@hostname:/etc/ansible# cat playbook1.yml
---
- hosts: all
  sudo: yes
  tasks:
    - name: copy
      copy: src=test_ansible.txt dest=/home/shimizu owner=root group=root mode=0644 backup=yes

Playbook Roles

2015-06-01_000557

playbookに

roles:
– mysql

と記載するとmysql配下が読み込まれる

参考

Ansible の Playbook を使ってみる
→playbook利用にあたり、必要な情報が網羅されていました
http://d.hatena.ne.jp/akishin999/20130815/1376520672
Ansible (7) playbookを書こう<後編>
→rolesを作るときの参考にしたい
http://techblog.clara.jp/2014/07/ansible_no7-playbook/
Ansible 入門
→モジュールやキーについて詳細まで記載されている
http://qiita.com/ArimaRyunosuke/items/1f9d840311584d8160bc
python製の構成管理ソフト ansible を使ってみたのでまとめ
→モジュールの説明が詳しい
http://d.hatena.ne.jp/hogem/20130615/1371306941

1件のコメントがあります

  1. shimizu

    rolesについて追加
    ・main.ymlが自動でincludeされる

コメントは受け付けていません。