5. Orchestration CloudStack
Pilote le stockage
Pilote les composants réseaux et
sécurité
Pilote la virtualisation
Pilote la bibliothèque d’images
et ISO.
Interfaces
Web: Interface de gestion via
navigateur internet
Ligne de commande: Gérer votre
PaaS via un shell
API: Intégrer les webservices de
l’API cloudstack à votre système
Le Cloud by Ikoula– interopérabilité
et API
6. Pourquoi Ansible ?
Outil de configuration rapide
Simple à prendre en main
Modulaire
Sans agent
Pas besoin d’un orchestrateur central
Interopérable avec Windows
7. Pour quels besoins ?
Faciliter la configuration de nouveaux serveurs
Aider à la maintenance : patch, modification de
configuration, mises à jours, gestion de droits, etc.
Gestion par groupe de serveurs
8. Inventaire
Déclarer ses hôtes
[z1frxenmutu]
fr-z1-mutu01-xen[01:02] ansible_connection=ssh ansible_ssh_port=22
fr-z1-mutu02-xen01 ansible_connection=ssh ansible_ssh_port=22
fr-z1-mutu03-xen[01:03] ansible_connection=ssh ansible_ssh_port=22
Lister les hôtes d’un groupe
user@ansadmin~$ ansible z1frxenmutu --list-hosts
fr-z1-mutu01-xen01
fr-z1-mutu01-xen02
fr-z1-mutu02-xen01
fr-z1-mutu03-xen01
fr-z1-mutu03-xen02
fr-z1-mutu03-xen03
9. Ansible pour la mise en production
Exemple :
installer 4 serveurs PostgreSQL
12. InstallerPostgreSQL
user@ansadmin:~/postgres_cascading$ ansible -i hosts alls -u root -m apt -a
"name=postgresql state=latest"
PgHotStandbyUpstream | success >> {
"changed": true,
"stderr": "",
"stdout": "Reading package lists...nBuilding dependency tree...nReading
state information...nThe following extra packages will be installed:n libpq5
libxslt1.1 pgdg-keyring postgresql-9.4 postgresql-client-9.4n postgresql-
client-common postgresql-common postgresql-contrib-9.4 ssl-certnSuggested
packages:n postgresql-doc oidentd ident-server locales-all postgresql-doc-
9.4n libdbd-pg-perl openssl-blacklistnThe following NEW packages will be
installed:n (…)
Setting up postgresql (9.4+169.pgdg80+1) ...rnSetting up postgresql-contrib-
9.4 (9.4.4-1.pgdg80+1) ...rnProcessing triggers for libc-bin (2.19-18+deb8u1)
...rnProcessing triggers for systemd (215-17+deb8u2) ...rn"
}
PgMaster | success >> {
"changed": true,
(…)
13. Vérifier l’état du service
user@ansadmin:~/postgres_cascading$ ansible -i hosts alls -u root -m shell -a
"systemctl status postgresql“
PgMaster | success | rc=0 >>
* postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
Active: active (exited) since Wed 2015-09-30 15:35:22 CEST; 2min 16s ago
Main PID: 47224 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postgresql.service
PgHotStandbyUpstream | success | rc=0 >>
* postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
Active: active (exited) since Wed 2015-09-30 15:35:13 CEST; 2min 26s ago
Main PID: 47134 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postgresql.service
(…)
14. Ansible pour la maintenance
Cas 1 : modification d’une configuration en place
Cas 2 : déploiement d’un script de supervision
Cas 3 : application de patches
15. Modification IP du serveur syslog
{{ hostuuid }} > variable définie dans le fichier d’inventaire
user@ansadmin:~$ ansible xenall -u root -m shell -a "xe host-param-set uuid={{
hostuuid }} logging:syslog_destination=192.168.1.250"
user@ansadmin:~$ ansible xenall -u root -m shell -a "xe host-syslog-reconfigure
host-uuid={{ hostuuid }}"
16. Copie d’un script de supervision
mode > droits à appliquer au fichier ; owner / group > les propriétaires
user@ansadmin:~$ ansible xenall -u root -m copy -a
"src=/home/administrator/cloudstack/files/monitoring_wrapper.sh
dest=/home/zabbix/scripts/monitoring_wrapper.sh mode=500 owner=zabbix
group=zabbix"
fr-z1-mutu03-xen01 | success >> {
"changed": true,
"checksum": "f58c96289522ab9418d420dc356ee412d1ae261e",
"dest": "/home/zabbix/scripts/monitoring_wrapper.sh",
"gid": 500,
"group": "zabbix",
"md5sum": "1c02718baa2c4d5193a430789d51e033",
"mode": "0500",
"owner": "zabbix",
"size": 4951,
"src": "/tmp/ansible/ansible-tmp-1440771441.05-37417552365678/source",
"state": "file",
"uid": 500
}
18. Appliquer un patch
Pour uploader et appliquer le patch « XS65ESP1008.xsupdate » sur tous les
Xenserver en version 6.5 SP1
user@ansadmin:~$ ansible xenall65sp1 -u root -m copy -a
"src=/home/administrator/cloudstack/patchs/XS65ESP1008.xsupdate
dest=/root/XS65ESP1008.xsupdate"
user@ansadmin:~$ ansible xenall65sp1 -u root -m shell -a "xe patch-upload -s {{
my_host_alias }} -u root -pw {{ pwd }} file-name=/root/XS65ESP1008.xsupdate"
user@ansadmin:~$ ansible xenall65sp1 -u root -m shell -a "xe -s {{ my_host_alias
}} -u root -pw {{ pwd }} patch-pool-apply uuid=d91b3557-f1bf-4083-bd6f-
80a19d983775"
user@ansadmin:~$ ansible xenall65sp1 -u root -m shell -a "rm -f
/root/XS65ESP1008.xsupdate"
19. Ansible, outil d’admin indispensable
Avantages :
Simple d’utilisation
Riche en modules Core et Extra
Pas d’agent nécessaire
Gestion de rôles (les “playbooks”)
A venir :
le module« cloudstack » récemment arrivé dans
les modules Core de Ansible 2.0