Un résumé divers de ce que j'ai recherché sur Ansible

variable

Document officiel --Utilisation de variables

Il semble qu'il puisse être décrit à la fois au format de fichier ini et au format YAML. S'agit-il d'un fichier d'inventaire ...?

#format ini
[atlanta]
host1
host2

[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
#Format YAML
atlanta:
  hosts:
    host1:
    host2:
  vars:
    ntp_server: ntp.atlanta.example.com
    proxy: proxy.atlanta.example.com

Variables d'hôte et de groupe

En plus de définir des variables dans l'inventaire, vous pouvez également définir des variables d'hôte et de groupe. Dans ce cas, il semble nécessaire d'utiliser le format YAML. Créez un fichier de nom de groupe / nom d'hôte dans les répertoires group_vars et host_vars sous le répertoire/ etc / ansible /et le répertoire courant, et décrivez les paramètres.

/etc/ansible/group_vars/raleigh #L'extension de fichier est'.yml'、 '.yaml', Ou'.json'
/etc/ansible/group_vars/webservers
/etc/ansible/host_vars/foosball

Le fichier de définition de la variable associée au rôle peut être un peu différent. Ou main.yml. Je veux également lire ce qui suit. Documents officiels - Meilleures pratiques

Traitement itératif

Vous pouvez utiliser loop ou with_ * pour effectuer un traitement itératif. loop semble être une fonction ajoutée dans la version 2.5 d'Ansible. Certains modules vous permettent de passer une liste directement à un paramètre, ce qui peut être plus efficace que les tâches en boucle. Lisez le manuel du module.

Document officiel - Boucles

Itérer sur une simple liste

- name: add several users
  user:
    name: "{{ item }}"
    state: present
    groups: "wheel"
  loop: # with_items:
     - testuser1
     - testuser2

Traitement itératif de la liste de hachage

- name: add several users
  user:
    name: "{{ item.name }}"
    state: present
    groups: "{{ item.groups }}"
  loop: # with_items:
    - { name: 'testuser1', groups: 'wheel' }
    - { name: 'testuser2', groups: 'root' }

Lors du référencement d'une variable

Si vous souhaitez effectuer une itération en utilisant une variable prédéfinie, spécifiez la variable dans loop. Les variables ne peuvent être référencées que si elles sont placées entre «" {{}} "». Ce que vous devez faire attention est le nom de la variable, et il y a des variables qui sont implicitement déclarées, donc si vous êtes en conflit avec elle, cela ne fonctionnera pas et vous en serez accro. .. .. Comme «groupes». Vérifiez Variables spéciales dans le document officiel. .. ..

vars:
  users:
    - { name: 'testuser1', groups: 'wheel' }
    - { name: 'testuser2', groups: 'root' }

- name: add several users
  user:
    name: "{{ item.name }}"
    state: present
    groups: "{{ item.groups }}"
  loop: "{{ users }}"

Exécutez la tâche en tant qu'utilisateur administrateur

Si vous ne pouvez pas établir de connexion SSH en tant que root, utilisez devenir pour exécuter la tâche avec des privilèges d'administrateur.

Document officiel - Comprendre l'élévation des privilèges: devenir

Lorsque vous décrivez dans le manuel, décrivez sous la forme suivante.

---
- hosts: all
  become: yes
  become_user: root
  become_method: su
  become_flags: '-s /bin/sh'

Ou définissez une variable. Je pense que les variables doivent être spécifiées dans un fichier approprié en fonction du champ d'application.

---
# group_vars/all.yml
ansible_become: yes
ansible_become_method: su
ansible_become_password: somepassword

Il semble que devenir_password ne puisse pas spécifier de hachage de mot de passe. Si vous souhaitez protéger les données sensibles, utilisez Ansible Vault.

Courir

DRY-RUN Exécutez avec l'option --check. Il existe également une option --diff, mais quelle est la différence ...

Vérification de la syntaxe

Exécutez avec l'option --syntax-check.

Consultez la liste des tâches

Exécutez avec l'option --list-tasks.

Exécuter à partir d'une tâche spécifique

ʻExécuter la commande ansible-playbookavec l'option--start-at-task. Ajoutez l'option --step` à l'étape.

ansible-playbook -i hosts -l hostname site.yml --start-at-task="some task name" --step

Recommended Posts

Un résumé divers de ce que j'ai recherché sur Ansible
Un résumé des choses que j'ai touchées comme un blog
H29.2.27 ~ 3.5 Résumé de ce que j'ai fait
[Ansible] Ce à quoi je fais attention lorsque j'écris ansible
Qu'est-ce qu'un moteur de recommandation? Résumé des types
J'ai jeté un œil au contenu de sklearn (scikit-learn) (1) ~ Qu'en est-il de l'implémentation de CountVectorizer? ~
2017.3.6 ~ 3.12 Résumé de ce que nous avons fait
Ce que j'ai appris sur Linux
Un bref résumé de Linux
Une note de ce que j'ai appris quand j'ai pensé à utiliser pyenv ou virtualenv sous Windows
Un bref résumé de la collection Python
J'ai une question sur les blancs
Un résumé approximatif de l'histoire du système d'exploitation
J'ai brièvement résumé les bits quantiques (débutants)
Ce que j'ai vérifié sur le post de Qiita
Un rappel de ce que je suis resté coincé lors du démarrage d'Atcoder avec python
Mémorandum sur le QueryDict de Django
Résumé des fonctions numpy que je ne connaissais pas
Ce que j'ai fait avec les tableaux Python
Un bref résumé de la vue d'ensemble de Pinax #djangoja
J'ai pris un benchmark de compression h5py
J'ai essayé la détection 3D d'une voiture
Analyse des données de pratique Python Résumé de l'apprentissage que j'ai atteint environ 10 avec 100 coups
Résumé des techniques de commande Linux que je connaissais quand j'étais un ingénieur débutant
Résumé de ce qui a été utilisé dans 100 coups de Pandas (# 1 ~ # 32)
J'ai réfléchi un peu à l'API grandissante de TensorFlow
Écrire une note sur la version python de python virtualenv
Résumé relatif aux E / S de python et fortran
Ce à quoi j'ai pensé dans la question de l'examen d'entrée de "Bayes Statistics from the Basics"
J'ai réfléchi à la raison pour laquelle Python self est nécessaire avec le sentiment d'un interpréteur Python