ども、Ansible 初心者のかっぱです。
解らないことが多いので
気になったことは適宜メモっていくばい。
authorized_key モジュール
ansible というユーザーの authorized_key に追加したい場合。
- authorized_key: user=ansible key="{{ item }}" with_file: - public_keys/test-foo
public_key/test-foo は以下のように用意しておく。
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx kappa@ahoaho.local
inlinefile モジュール
MySQL の設定ファイル my.cnf にてバイナリログを有効にする、server-id を有効にする。
log-bin=mysql-binserver-id=123456
以下のように task を用意する。
- name: my.cnf update(add replication setting) lineinfile: dest=/etc/my.cnf insertafter="^\[mysqld]" line='\nlog-bin=mysql-bin\nserver-id={{ server_id }}' backup=yes
以下のように vars/main.yml を用意する。
server_id: 123456
the 冪等性
上記の my.cnf で既にバイナリログの設定、server-id の設定が行われていたらタスクをスキップする。
- name: check line in my.cnf shell: egrep "^log-bin|^server-id" /etc/my.cnf register: mysql_line_list changed_when: false always_run: yes - name: my.cnf update(add replication setting) lineinfile: dest=/etc/my.cnf insertafter="^\[mysqld]" line='\nlog-bin=mysql-bin\nserver-id={{ server_id }}' backup=yes when: mysql_line_list.stdout_lines.count < 1
shell モジュールの結果を mysql_line_list に登録、その結果を以って次の lineinfile のタスクが実行される。(既に設定済みであればスキップする)
結局は...
モジュールを使ってみた的な内容になってすいません。