私のansibleプレイブックには次のタスクがあります。
- name: Install EPEL repo.
yum:
name: "{{ epel_repo_url }}"
state: present
register: result
until: '"failed" not in result'
retries: 5
delay: 10
状態に渡すことができる別の値は「インストール済み」です。 2つの違いは何ですか?ここで利用可能ないくつかのドキュメント: http://docs.ansible.com/ansible/yum_module.html
彼らは同じことをします、彼らはお互いのエイリアスです、yumモジュールのソースコードでこのコメントを見てください:
# removed==absent, installed==present, these are accepted as aliases
そして、コードでの使用方法:
if state in ['installed', 'present']:
if disable_gpg_check:
yum_basecmd.append('--nogpgcheck')
res = install(module, pkgs, repoq, yum_basecmd, conf_file, en_repos, dis_repos)
Elif state in ['removed', 'absent']:
res = remove(module, pkgs, repoq, yum_basecmd, conf_file, en_repos, dis_repos)
Elif state == 'latest':
if disable_gpg_check:
yum_basecmd.append('--nogpgcheck')
res = latest(module, pkgs, repoq, yum_basecmd, conf_file, en_repos, dis_repos)
else:
# should be caught by AnsibleModule argument_spec
module.fail_json(msg="we should never get here unless this all"
" failed", changed=False, results='', errors='unexpected state')
return res
https://github.com/ansible/ansible-modules-core/blob/devel/packaging/os/yum.py
「Present」および「Installed」という状態は同じ意味で使用されます。両方とも同じことを行います。つまり、「yum」の場合に目的のパッケージがインストールされるようにします。
「Latest」としての状態は、インストールに加えて、最新の利用可能なバージョンでない場合は先に進み、更新することを意味します。
スタック/アプリを構築するとき、または本番環境で作業するときは常に、「Present」または「Installed」を使用することをお勧めします状態。これは、ソフトウェアの更新、アプリの展開、依存関係のバージョンバンプのいずれであっても、サーバーの構成とは無関係であり、実際に運用を中断する可能性があるためです。
あなたはそれについてもっと読んで理解することができます こちら 。
2.xでは、installed
とremoved
はpresent
とabsent
の代わりに廃止され、Ansible 2.9以降では使用できなくなりました