すでにある環境に対して、Ansibleで構成変更するとき、特定のコンテキストのことろだけ、既存の行を変更したいことがある。
sed を使って、書き換えるべきかどうかを判定して、必要なときに書き換える例。
- hosts: servers
vars:
httpd_conf: /etc/apache2/apache2.conf
tasks:
- name: lookup DocumentRoot in VirtualHost
shell: sed -n '/^<VirtualHost \*:80>/,/<\/VirtualHost>/{/DocumentRoot/p; }' {{httpd_conf}}
register: lookup
changed_when: False
- name: change httpd.conf
shell: sed -i$(date +'.%Y-%m-%d@%H:%M~') '/^<VirtualHost \*:80>/,/<\/VirtualHost>/{s/\(DocumentRoot[[:space:]]*\).*$/\1\/var\/www/; }' {{httpd_conf}}
when: lookup.stdout != ""
0 件のコメント:
コメントを投稿