Ansible

Dans l’article ci-dessous, je vais essayé de vous expliquer comment installer et utiliser https://www.ansible.com/.

Celui-ci va vous permettre de :
– mettre en place rapidement de nouveau services sur un ou plusieurs serveur simultanément
– mettre en place rapidement des nouvelles applications sur un ou plusieurs serveur simultanément
– autre chose dont vous auriez besoin dans votre infrastructure.

Avec ansible, cela me permet par exemple
– de déployer rapidement de nouvelle sonde avec NSClient++ et de les maintenir à jour.
– de maintenir à jour les applications

Pour réaliser l’installation je me base sur les scripts créé ou modifier sont disponible ici.
https://github.com/tips-of-mine/ansible/
https://notepad-plus-plus.org/fr/
https://www.nsclient.org/
https://www.centreon.com/

1. INSTALLATION ANSIBLE

Nous commençons par mettre le bon repos Centos 7 en place

yum install epel-release*

Nous faisons une mise à jours global du serveur

yum update -y

Puis nous pouvons installer Ansible

yum install ansible

Nous installons python2-pip

yum install python2-pip

Nous mettons le composant pywinrm pour interagir avec les Windows

pip install pywinrm

Nous mettons aussi à jour PIP

pip install –upgrade pip

2. CONTROLE INSTALLATION

Nous pouvons contrôler l’installation

ansible –version

3. PARAMETRAGE DE CONTROLE A DISTANCE

Nous générons une clé ssh pour les serveurs Linux

ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Tomf0+za6xTttxBFu7U7UIQh1nBug/5oOyV/qig/Fk8 root@ANSIBLE
The key’s randomart image is:
+—[RSA 2048]—-+
| +oo+. |
| . =+.. |
| . +o..|
| . …..oo.|
| . S ..o… |
| + = Eoo. .|
| = Bo*..o |
| . Boo.+ o.|
| ==*+o.+ |
+—-[SHA256]—–+

Nous pouvons donc l’envoyer sur l’ensemble des serveurs que nous désirons

ssh-copy-id root@prod-apache-1

La clé ce copie

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: « /root/.ssh/id_rsa.pub »
The authenticity of host ‘prod-apache-1 (prod-apache-1)’ can’t be established.
RSA key fingerprint is SHA256:vL55i7RpHXCUczkiSorPMph8x9MiNb5L4Z8r4ElaCAg.
RSA key fingerprint is MD5:42:69:37:89:01:49:ca:12:d6:cb:69:9c:38:b9:7c:06.
Are you sure you want to continue connecting (yes/no)?# yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
root@prod-apache-1’s password:# mot de passe root de Centreon Server
Number of key(s) added: 1
Now try logging into the machine, with: « ssh ‘root@prod-apache-1′ »
and check to make sure that only the key(s) you wanted were added.

Nous pouvons tester la connexion

ssh ‘root@prod-apache-1’

Nous quittons le session distant

exit

4. PARAMETRAGE

Nous devons créer les fichiers inventaires dans le répertoire /opt/ansible/inventaire

Nous créons un fichier par serveur

nano /opt/ansible/inventaire/active-directory-1.inv

Dans celui nous mettons

active-directory-1

Nous créons un fichier pour l’infrastructure global

nano /opt/ansible/inventaire/production.inv

Dans celui nous mettons

[all:vars]
ansible_connection=local
[tomcat]
prod-haproxy-1
prod-haproxy-2
[apache]
prod-apache-1
prod-apache-2

[mysql]
prod-mysql-[1:2]

[linux:children]
apache
mysql

[active-directory]
active-directory-1
active-directory-2

[dhcp]
dhcp-1
dhcp-2

[dns]
dns-1
dns-2

[hyper-v]
hyper-v-1
hyper-v-2
[windows:children]
active-directory
dhcp
dns
hyper-v

[windows:vars]
ansible_user=administrateur
ansible_password=P@ssw0rd
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

5. Exemple pour LINUX

Maintenant qu’ansible est installé, nous allons pouvoir rapidement passer à l’action.

Après avoir placé l’ensemble des fichiers se trouvant sur GIT (https://github.com/tips-of-mine/ansible/) dans le répertoire /opt

Avec celui-ci nous installons et modifions l’ensemble des services SNMP, ce qui permet de faire du monitoring rapidement

ansible-playbook -b -i /opt/ansible/inventaire/production.inv /opt/ansible/yml/Centos-Install-FusionInventory.yml

J’ai commencé à me créer une liste de fichier sur GIT pour faire divers tâche et je continuerai à la maintenir à jour.

6. Exemple pour WINDOWS

Maintenant qu’ansible est installé, nous allons pouvoir rapidement passer à l’action.

Nous commençons par exécuter sur chaque serveur Windows le script Powershell https://github.com/ansible/ansible/tree/devel/examples/scripts/
Vous devez télécharger et exécuter le script ConfigureRemotingForAnsible.ps1

Après avoir placé l’ensemble des fichiers se trouvant sur GIT (https://github.com/tips-of-mine/ansible/) dans le répertoire /opt

Avec celui-ci nous installons et modifions l’ensemble des services SNMP, ce qui permet de faire du monitoring rapidement

ansible-playbook -b -i /opt/ansible/inventaire/production.inv /opt/ansible/yml/Windows-Install-Service-SNMP.yml

Avec celui-ci nous installons et modifions le programme NSClient, en plus nous y intégrons nos scripts personnalisés pour l’ensemble de Windows

ansible-playbook -b -i /opt/ansible/inventaire/production.inv /opt/ansible/yml/Windows-Install-NSClient.yml

Avec celui-ci nous installons la version désirée de Notepad++

ansible-playbook -b -i /opt/ansible/inventaire/production.inv /opt/ansible/yml/Windows-Install-Notepad++.yml

Avec celui-ci nous installons FusionInventory pour maintenir à jour l’inventaire de notre parc

ansible-playbook -b -i /opt/ansible/inventaire/production.inv /opt/ansible/yml/Windows-Install-FusionInventory.yml<

Avec celui-ci nous installons le service Hyper-v

ansible-playbook -b -i /opt/ansible/inventaire/production.inv /opt/ansible/yml/Windows-Install-Service-Hyper-V.yml

J'ai commencé à me créer une liste de fichier sur GIT pour faire divers tâche et je continuerai à la maintenir à jour.

Taggé , , , , , , , , .Mettre en favori le Permaliens.

Les commentaires sont fermés.