はい、次のようなことを試すことができます:
---
- name: Reboot Server Playbook
hosts: all
user: ambot
sudo: True
tasks:
- name: Do an upgrade
command: yum upgrade -y
- name: Check what the new version is
shell: lsb_release -r | awk '{print $2}'
register: new_release
- name: Reboot
command: /sbin/reboot
when: ansible_distribution_version != new_release.stdout
CentOS リリースが変更された場合、上記はサーバーを再起動します。ansible_distribution_version
また、プレイブックの初回実行時に最初に設定された ansible ファクト変数からも使用されます。yum upgrade コマンドに -y を追加して、プロセスが ansible からの stdin での確認を待ってスタックしないようにします。ローカルホストで ansible ファクトを表示するには、次のように実行できます。
ansible localhost -m setup
[プレイブックでファクトを再生成するために考えられる解決策]
# You can try this to store the initial version
vars:
current_os_version: $ansible_distribution_version
tasks:
- name: Regenerate facts ?
setup: filter=*