Ansible

in  

Ansibleについて

便利オプション

–start-at-task taskname Ansibleに先頭のタスクからではなく、指定したタスクから実行させることができます。 これは、いずれかのタスクにバグがあって失敗し た場合に、修正したタスクから playbook を実行し直しさせたい場合に非常に便利です。

–step Ansible は各タスクの実行前に、ユーザーに以下のようなプロンプトを表示するようになります。 Perform task: install packages (y/n/c):

–ask-become-pass sudoのパスワードをplaybook実行時に聞いてくれる仕組み

check_mode

ansible-playbookコマンドに-Cオプションを追加した場合は、DryRunでの動作となる。

playbookにおいて、

1
2

check_mode:false

だと、checkモードでの実行時でも通常モードで実行される。 trueだと、常にcheckモードで実行される。

changed_when

https://qiita.com/ryurock/items/639e5f7e49d25c3b6d75

changedは対象のOSの振る舞いが変わった時だけchangedになる方が望ましいが、shellが実行されると、常にchangedになってしまう。

1
2
3
- name: Set HostName
  shell: "hostname {{ hostname }}"
  changed_when: False

limit

ansible-playbookコマンドで対象を制限するオプション –limit (-l)

ansible-playbook -i ec2.py -l tag_Name_gside playbook.yaml -C -D

jinja2 filter

正規表現

1
2
hoge: "fuga.hoge"
txt: {{ hoge | regex_replace('hoge', 'fuga') }}

https://qiita.com/tbuchi888/items/80fded8d11366e967290

listの全ての値に関数を適用する

1
2
3
tasks:
  - debug:
      msg: "{{ mylist | map('regex_replace', '(.*)', '\\1_foo') | list }}"

https://gist.github.com/halberom/9bfe009c9a3df5d64c7bb505a7700430

python not found

/usr/bin/python が存在しない場合はパスを指定する。

1
-e 'ansible_python_interpreter=/usr/bin/python3'

Share