ansibleと自動生成IDには少し問題があります。複数のmysqlマスターサーバーとスレーブサーバーがあり、サーバーIDを生成する必要があります。
私の考えは、次のようにすることです。
- name: generate repli-id
shell: hostname -I | sed -e 's/ \+\([a-z0-9]\+\:\)\+[a-z0-9]\+//' | sed -e 's/ /\n/' | grep -v '^$' | tail -1 | awk -F. '{print $3 * 256 + $4}'
register: slave_repli
- debug: var=slave_repli.stdout_lines
- name: rewrite
template: src=templates/root.j2 dest=/root/test.conf
そのため、生成されたIDを取得しました。
TASK [debug] *******************************************************************
task path: /Users/miwi/ansible/roles/test/main.yml:32
ok: [mysqls5slave] => {
"slave_repli.stdout_lines": [
"3698"
]
}
ok: [mysqls5master] => {
"slave_repli.stdout_lines": [
"3699"
]
}
私の質問は今、私のvarファイルに渡す方法です。
スレーブサーバーID:{{スレーブサーバーID}}
ベストアンサー1
local_action とともにコピーモジュールを使用して、変数を制御システムのローカルファイルに保存し、後で次のプレイブックで使用できます。
- local_action: copy content="slave_server_id: {{ slave_repli.stdout_lines[0] }}" dest=/path/to/var/file