web-dev-qa-db-fra.com

Quelle est la différence entre deux valeurs d'option "état", "présent" et "installé", disponibles dans le module yum Ansible?

J'ai la tâche suivante dans mon livre de jeu ansible:

- name: Install EPEL repo.
  yum:
    name: "{{ epel_repo_url }}"
    state: present
    register: result
    until: '"failed" not in result'
    retries: 5
    delay: 10

Une autre valeur que je peux transmettre à l'état est "installé". Quelle est la différence entre les deux? Quelques documentations disponibles ici: http://docs.ansible.com/ansible/yum_module.html

17
kevmo

Ils font la même chose, ce sont des alias l'un pour l'autre, voir ce commentaire dans le code source du module yum:

# removed==absent, installed==present, these are accepted as aliases

Et comment ils sont utilisés dans le code:

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

Indiquez comme ' Présent ' et ' Installé ' sont utilisés de manière interchangeable. Ils font tous les deux la même chose, c'est-à-dire qu'ils garantiront qu'un package souhaité dans votre cas `` yum '' est installé.

Alors que l'état comme ' Latest ' signifie en plus de l'installation, il ira de l'avant et se mettra à jour s'il ne s'agit pas de la dernière version disponible.

Chaque fois que vous créez votre pile/application ou travaillez sur la production, il est toujours conseillé d'utiliser ' Present ' ou ' État installé '. En effet, une mise à jour logicielle, qu'il s'agisse du déploiement de votre application ou d'un bump de version de dépendance, n'a rien à voir avec la configuration du serveur et pourrait vraiment interrompre votre production.

Vous pouvez lire et comprendre plus à ce sujet ici .

15
Yogesh Darji

Dans 2.x installed et removed sont déconseillés au profit de present et absent et ne sont plus disponibles après Ansible 2.9

0
venimus