Articles of ansible

Remplacer la variable hosts du playbook Ansible à partir de la ligne de commande

Ceci est un fragment d’un playbook que j’utilise ( server.yml ): – name: Determine Remote User hosts: web gather_facts: false roles: – { role: remote-user, tags: [remote-user, always] } Mon fichier hosts a différents groupes de serveurs, par exemple [web] xxxx [droplets] xxxx Maintenant, je veux exécuter ansible-playbook -i hosts/ server.yml et remplacer les hosts: […]

Comment vérifier qu’un fichier existe dans ansible?

Je dois vérifier si un fichier existe dans /etc/ . Si le fichier existe, je dois ignorer la tâche. Voici le code que j’utilise: – name: checking the file exists command: touch file.txt when: $(! -s /etc/file.txt) Si le file.txt existe, alors je dois ignorer la tâche.

Comment puis-je écrire un gestionnaire Ansible avec plusieurs tâches?

En réponse à un changement, j’ai plusieurs tâches connexes à exécuter. Comment puis-je écrire un gestionnaire Ansible avec plusieurs tâches? Par exemple, j’aimerais un gestionnaire qui redémarre un service uniquement s’il a déjà démarré: – name: Restart conditionally shell: check_is_started.sh register: result – name: Restart conditionally step 2 service: name=service state=restarted when: result

SSH Agent Forwarding avec Ansible

J’utilise Ansible 1.5.3 et Git avec le transfert d’agent ssh ( https://help.github.com/articles/using-ssh-agent-forwarding ). Je peux me connecter au serveur que je gère avec Ansible et vérifier que ma connexion à git est correctement configurée: ubuntu@test:~$ ssh -T [email protected] Hi gituser! You’ve successfully authenticated, but GitHub does not provide shell access. Je peux aussi cloner et […]

Ansible – Utiliser la valeur par défaut si une variable n’est pas définie

Je personnalise la création des users Linux dans mon rôle. Je dois laisser les utilisateurs de mon rôle personnaliser le home_directory , group_name , name , password . Je me demandais s’il y avait un moyen plus flexible de faire face aux valeurs par défaut. Je sais que le code ci-dessous est possible: – name: […]

Comment obtenir le répertoire de base d’un utilisateur distant arbitraire dans Ansible?

Je peux le faire avec shell en utilisant une combinaison de getent et awk comme ceci: getent passwd $user | awk -F: ‘{ print $6 }’ Pour la référence, dans Puppet, je peux utiliser un fait personnalisé, comme ceci: require ‘etc’ Etc.passwd { |user| Facter.add(“home_#{user.name}”) do setcode do user.dir end end } ce qui rend […]

Ansible: filtre une liste par ses atsortingbuts

J’ai une variable nommée “network” enregistrée dans Ansible: { “addresses”: { “private_ext”: [ { “type”: “fixed”, “addr”: “172.16.2.100” } ], “private_man”: [ { “type”: “fixed”, “addr”: “172.16.1.100” }, { “type”: “floating”, “addr”: “10.90.80.10” } ] } } Est-il possible d’obtenir l’adresse IP (“addr”) avec type = “floating” en faisant quelque chose comme ça? – debug: […]

Comment utiliser le module modèle avec différents ensembles de variables?

Mon cas d’utilisation est le suivant: J’ai un fichier de modèle et j’aimerais créer 2 fichiers différents à partir de ce modèle, les variables étant remplies par un ensemble de variables différent pour chaque fichier. Par exemple, disons que je veux modéliser le fichier contenant la ligne: mkdir -p {{myTemplateVariable}} Je voudrais trouver un moyen […]

Comment faire un script shell multiligne dans Ansible

en ce moment, j’utilise un script shell dans Ansible qui serait beaucoup plus lisible s’il était sur plusieurs lignes – name: iterate user groups shell: groupmod -o -g {{ item[‘guid’] }} {{ item[‘username’] }} ….more stuff to do with_items: “{{ users }}” Je ne sais pas comment autoriser le script multiligne dans le module shell […]

inclure des tâches d’un autre rôle dans le playbook Ansible

Je conçois une sorte de librairie avec des tâches individuelles donc dans les rôles habituels repo, j’ai quelque chose comme: roles ├── common │ └── tasks │ ├── A.yml │ ├── B.yml │ ├── C.yml │ ├── D.yml │ ├── login.yml │ ├── logout.yml │ └── save.yml ├── custom_stuff_workflow │ └── tasks │ └── main.yml […]