Skip to content

Autres Commandes

Permet de visualiser la configuration du contrôleur Ansible

Section titled “Permet de visualiser la configuration du contrôleur Ansible”

Visualiser la configuration modifiée par l’utilisateur

ansible-config view
[defaults]
inventory = /home/centos/inventory

Dump toutes les variables de config

ansible-config dump
DEFAULT_HOST_LIST(/home/centos/.ansible.cfg) = [u'/home/centos/inventory']
DEFAULT_ROLES_PATH(default) = [u'/home/centos/.ansible/roles', u'/usr/share/ansible/roles', u'/etc/ansible/roles']
YAML_FILENAME_EXTENSIONS(default) = ['.yml', '.yaml', '.json']

Documentation des variables de config

ansible-config list
ACTION_WARNINGS:
default: true
description: [By default Ansible will issue a warning when received from a task
action (module or action plugin), These warnings can be silenced by adjusting
this setting to False.]
env:
- {name: ANSIBLE_ACTION_WARNINGS}
ini:
- {key: action_warnings, section: defaults}
name: Toggle action warnings
type: boolean
version_added: '2.5'
.../...

Permet d’acceder à la documentation des modules

Section titled “Permet d’acceder à la documentation des modules”

Documentation du module yum

ansible-doc yum
> YUM (/usr/lib/python2.7/site-packages/ansible/modules/packaging/os/yum.py)
Installs, upgrade, downgrades, removes, and lists packages and groups with the `yum'
package manager. This module only works on Python 2. If you require Python 3 support
see the [dnf] module.
- name
A package name or package specifier with version, like `name-1.0'.
- state
Whether to install (`present' or `installed', `latest'), or remove (`absent' or
`removed') a package.

Permet de jouer vos tâches en mode interactif (shell)

Section titled “Permet de jouer vos tâches en mode interactif (shell)”

Lancer la console sur le group all

ansible-console -i inventory
Welcome to the ansible console.
Type help or ? to list commands.
centos@all (3)[f:5]$

Liste des machines cibles

centos@all (3)[f:5]$ list
host72
host73
host71

Lancer la console sur une host cible

ansible-console -i inventory host71
Welcome to the ansible console.
Type help or ? to list commands.
centos@all (3)[f:5]$

Liste des machines cibles

centos@all (3)[f:5]$ list
host71

Afficher la liste des moducles

Welcome to the ansible console.
Type help or ? to list commands.
centos@all (3)[f:5]$ help
Documented commands (type help <topic>):
========================================
ping
yum
shell
.../...

Mode opératoire différent: Les hosts deviennent contrôleur Ansible et exécutent le playbook qu’ils ont extrait de git

Exécuter le playbook ansible sur la cible

ansible-pull provision.yml --url git_repository -i localhost

—url : URL du dépôt GIT qui contient le playbook

Exemple

ansible-pull -U https://github.com/go2mylearn/ansible-pull-example -i hosts

Avec crontab

crontab -l
0 * * * 0 /bin/ansible-pull -U https://github.com/go2mylearn/ansible-pull-example -i hosts

L’instruction debugger peut prendre les valeurs suivantes :

  • always: appeler toujours le débogueur, quel que soit le résultat.
  • never: n’invoquer jamais le débogueur, quel que soit le résultat.
  • on_failed: n’appeler le débogueur qu’en cas d’échec d’une tâche.
  • on_unreachable: n’appeler le débogueur que si l’hôte a est inaccessible.
  • on_skipped: n’appeler le débogueur uniquement si la tâche est ignorée.

Pour une task:

- name: Execute a command
command: /usr/bin/uptime
debugger: on_failed

Pour un play:

- hosts: all
debugger: on_failed
tasks:
- name: Execute a command
command: /usr/bin/uptime

En mode debug vous pouvez utiliser les commandes suivantes:

  • p task/task_vars/host/result: affiche des informations de la task
  • task.args[key] = value: met à jour les arguments du module
  • task_vars[key] = value: met à jour les variables du module
  • update_task: exécution de la task à jour
  • redo: exécutez à nouveau la tâche.
  • continue: passe à la tâche suivante.
  • quit: quitte le débogueur.
tasks:
- name: Copie de fichier
copy:
src: "index.html"
dest: /var/html/index.html
state: present
debugger: on_failed
[host62] TASK: Copie de fichier (debug)> p result._result
{'_ansible_no_log': False,
'_ansible_parsed': True,
'changed': False,
'checksum': '13fce4cb2fee1b8b537e28efdeeb5d4e94172e06',
'diff': [],
'failed': True,
'invocation': {'module_args': {'_original_basename': 'index.html',
[host62] TASK: Copie de fichier (debug)> p task.args
{'dest': '/var/html/index.html', 'src': 'index.html', 'state': 'present'}
[host62] TASK: Copie de fichier (debug)> p task.args['src']
'index.html'
[host62] TASK: Copie de fichier (debug)> task.args['src'] = 'index.php'
[host62] TASK: Copie de fichier (debug)> p task.args['src']
'index.php'
[host62] TASK: Copie de fichier (debug)> redo
ok: [host62]