web-dev-qa-db-ja.com

Ansibleのyumモジュールで利用可能な2つの「状態」オプション値「現在」と「インストール済み」の違いは何ですか?

私の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

17
kevmo

彼らは同じことをします、彼らはお互いのエイリアスです、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

13
Zlemini

Present」および「Installed」という状態は同じ意味で使用されます。両方とも同じことを行います。つまり、「yum」の場合に目的のパッケージがインストールされるようにします。

Latest」としての状態は、インストールに加えて、最新の利用可能なバージョンでない場合は先に進み、更新することを意味します。

スタック/アプリを構築するとき、または本番環境で作業するときは常に、「Present」または「Installed」を使用することをお勧めします状態。これは、ソフトウェアの更新、アプリの展開、依存関係のバージョンバンプのいずれであっても、サーバーの構成とは無関係であり、実際に運用を中断する可能性があるためです。

あなたはそれについてもっと読んで理解することができます こちら

15
Yogesh Darji

2.xでは、installedremovedpresentabsentの代わりに廃止され、Ansible 2.9以降では使用できなくなりました

0
venimus