2017-05-29 2 views
1

J'utilise Ansible pour automatiser mes systèmes. Je possède un playbook Ansible qui dépend de deux rôles. Le premier rôle crée un utilisateur ("utilisateur_ spécifique") sur un serveur distant. Le deuxième rôle utilise cet utilisateur pour faire un tas de choses.Le paramètre remote_user dans le rôle include est obsolète, quelle est la solution de contournement?

Ma première solution était la suivante (mon PlayBook):

--- 
- hosts: all 

roles: 
    - { role: ansible-role1, remote_user: root } 
    - { role: ansible-role2, remote_user: specific_user } 
... 

Cependant, je reçois l'avertissement suivant de Ansible lors de l'exécution il:

Using 'remote_user' as a role param has been deprecated. 
In the future, these values should be entered in the `vars:` section for 
roles, but for now we'll store it as both a param and an attribute.. 

Quelle est l'alternative?

Répondre

3

Actuellement c'est seulement un message d'avertissement (jusqu'à la version 2.7 d'Ansible).

Comme le message l'indique, vous devez changer la syntaxe à (en utilisant YAML dans l'exemple ci-dessous, car il est plus facile à lire):

roles: 
    - role: ansible-role1 
    vars: 
     remote_user: root 
    - role: ansible-role2 
    vars: 
     remote_user: specific_user 

...

+0

Merci, je ne l'ai pas compris le avertissement maintenant il est clair – MMacphail

+1

Je reçois maintenant l'avertissement suivant: 'Variable trouvée en utilisant le nom réservé remote_user' et j'ai des questions de suivi: 1) Votre syntaxe suggérée est-elle équivalente à {remote_user: root}? 2) pouvez-vous remplacer les variables de rôle en utilisant cette syntaxe? – MMacphail

+0

Ceci est clairement en phase de transition dans Ansible. Quelle version utilise-tu? Étiez-vous en utilisant une version différente lorsque vous avez posé la question? – techraf