$ ansible-playbook -i inventory site.yml
- name: change config
lineinfile: dest=/etc/example.conf regexp="{{ item.regexp }}" line="{{ item.line }}"
with_items:
- { regexp: '^sample one', line: '^sample two' }
- { regexp: '^sample three', line: '^sample "{{ example_var}}"' }
- yum: name=foo state=present enablerepo=epel
- service: name=nginx state=restarted enabled=yes
- git: repo=https://github.com/chroju/dotfiles dest=/home/chroju/dotfiles
- copy: dest=/tmp/foo src=/localfiles/foo owner=root group=root mode=0600 force=yes
- template: dest=/tmp/foo src=foo.j2 owner=root group=root mode=0600 force=yes backup=yes
- copyモジュールとの違いは内部で変数を使えること。
- file: path=/tmp/foo owner=root group=root mode=0644 recurse=yes state=directory
- ファイルの所有者やモードを変更したり、シンボリックリンクを貼ったりするのに使う。
- シンボリックリンクを貼る際は
state=link src=sourcefile。
state=absentでファイルを消したり、state=touchで空ファイルを置いたりもできる。
- unarchive: src=/tmp/foo dest=/usr/local/bar mode=0644 copy=no
- デフォルトではローカルからリモートへの転送動作になるので、リモートサーバー内での解凍処理の場合は
copy=noを付ける。
srcにはhttp等を指定してダウンロードさせることも可能。その場合もcopy=no指定が要る。
- lineinfile: dest=/tmp/foo line="sample message" insertafter="before message" create=yes state=present backup=yes
insertafterは最後にマッチした文字列に対して適用される。デフォルトはEOF。同様にinsertbeforeも存在する。
- 置換で使用する場合は置換対象を
regexpパラメーターで指定する。後方参照を行いたい場合はbackrefs=yesとする。
- shell: ls -la /var/log
register: result
- debug: var=result
- 変数等を標準出力上に展開し、デバッグ支援を行う。出力の指定には
varとmsgのいずれかを使用する。
varで指定した変数を出力する。
msgで出力する文字列を指定できる。