Deploy/Ansible
Introduction
Ansible est une plate-forme logicielle libre pour la configuration et la gestion des ordinateurs. Elle combine le déploiement de logiciels multi-nœuds, l'exécution des tâches ad-hoc, et la gestion de configuration. Elle gère les différents nœuds par dessus SSH et ne nécessite l'installation d'aucun logiciel supplémentaire à distance sur eux. Les modules fonctionnent grâce à JSON et à la sortie standard et peuvent être écrits dans n'importe quel langage de programmation. Le système utilise YAML pour exprimer des descriptions réutilisables de systèmes1.
La plate-forme a été créée par Michael DeHaan, l'auteur de l'application serveur de provisioning Cobbler et coauteur du cadre de développement Func pour l'administration à distance2. Les utilisateurs de Ansible comprennent le Fedora Project, Hewlett-Packard Allemagne, Basho Technologies et l'Université Aristote de Thessalonique3. Il est inclus dans le cadre de la distribution Linux Fedora, propriété de Red Hat inc., et est également disponible pour Red Hat Enterprise Linux, CentOS et Scientific Linux via les paquets supplémentaires "Extra Packages for Enterprise Linux" (EPEL).
Installation
L'installation est très triviale et se résume à un simple:
yum install ansible
Utilisation
Commandes
ansible all -a "rpm -Uvh http://koji.b2pweb.com/packages/b2pweb-release/1.3.0/1.el6/noarch/b2pweb-release-1.3.0-1.el6.noarch.rpm"
Installation de paquets
ansible all -m yum -a 'name=mysql-conf state=installed'
Aide
L'aide sur les modules
ansible-doc yum
> YUM
Will install, upgrade, remove, and list packages with the `yum'
package manager.
Options (= is mandatory):
- conf_file
The remote yum configuration file to use for the transaction.
- disable_gpg_check
Whether to disable the GPG checking of signatures of packages
being installed. Has an effect only if state is `present' or
`latest'. (Choices: yes, no)
- disablerepo
`repoid' of repositories to disable for the install/update
operation These repos will not persist beyond the transaction
Multiple repos separated with a ','
- enablerepo
Repoid of repositories to enable for the install/update
operation. These repos will not persist beyond the transaction
multiple repos separated with a ','
- list
Various non-idempotent commands for usage with
`/usr/bin/ansible' and `not' playbooks. See examples.
= name
Package name, or package specifier with version, like
`name-1.0'. When using state=latest, this can be '*' which
means run: yum -y update. You can also pass a url or a local
path to a rpm file.
- state
Whether to install (`present', `latest'), or remove (`absent')
a package. (Choices: present, latest, absent)
Requirements: yum, rpm
- yum: name=httpd state=latest
- yum: name=httpd state=removed
- yum: name=httpd enablerepo=testing state=installed
- yum: name=* state=latest
- yum: name=http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present
- yum: name=/usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present
- yum: name="@Development tools" state=present