ansible tutorial installation
Tutoriel pratique Ansible avec l'installation, l'utilisation et la configuration d'Ansible avec les modules Ansible:
Nous avons discuté de AWS Elastic Beanstalk dans notre tutoriel précédent.
LISTE des didacticiels de cette série Ansible:
Tutoriel n ° 1: Installation et modules Ansible
Tutoriel n ° 2: Playbooks et coffres Ansible
Tutoriel n ° 3: Rôles Ansible et intégration avec Jenkins
Ansible est un outil open source qui aide à l'automatisation des tâches, au déploiement d'applications, au provisionnement cloud et à la gestion de la configuration.
Lire aussi => Liste des didacticiels de formation DevOps
Nous parlons donc d'orchestration informatique où les tâches sont exécutées en séquence sur plusieurs machines ou serveurs différents.
Ansible le fait en se connectant à plusieurs machines via SSH et exécute les tâches qui ont été configurées dans des playbooks et utilise un langage simple appelé YAML (encore un autre langage de balisage) .
Ce que vous apprendrez:
- Présentation d'Ansible
- Processus d'installation d'Ansible
- Utilisation d'Ansible
- Modules Ansible
- Résumé
- lecture recommandée
Présentation d'Ansible
Plus important encore, Ansible n'utilise pas d'agent pour automatiser les tâches sur différentes machines.
Ansible assure le maintien des versions exactes et des informations à jour des progiciels.
Par exemple , si vous souhaitez installer JDK 8 ou Tomcat ou tout autre progiciel sur 10 ou 20 machines différentes, il n'est en fait pas possible d'aller sur toutes les machines et de les installer plutôt d'utiliser Ansible pour automatiser l'installation ou même les déploiements de logiciels à l'aide de Playbooks et Inventory écrit dans une langue très simple.
Donc Ansible est:
- Gratuit et Open Source
- Maintenu par Redhat
- Essentiellement une configuration de serveur
- Gestion de la configuration
Dans cette série de didacticiels Ansible en 3 parties, nous discuterons d'une approche pratique sur les sujets suivants:
- Processus d'installation et de configuration
- Inventaire
- Modules Ansible
- Commandes ad-hoc,
- Automatisation des tâches à l'aide de playbooks
- Rôles Ansible
- Voûte Ansible
- Ansible et AWS
Processus d'installation d'Ansible
Ansible peut être installé et exécuté à partir de n'importe quelle machine.
En règle générale, vous aurez besoin d'un Machine de contrôle pour l'installation qui devrait être Linux. La machine Windows ne prend pas en charge le fait d'être une machine de contrôle. La machine de contrôle gérera les autres machines distantes. Comme mentionné précédemment, Ansible utilise SSH pour gérer les machines distantes.
Tout au long de ce didacticiel, j'utiliserai des instances AWS EC2 pour présenter les exemples. J'ai utilisé 2 instances (une machine de contrôle et une autre comme cible pour l'automatisation des tâches) et Redhat Linux 7.5.
Qu'il s'agisse d'instances sur site ou dans le cloud, vous devrez ouvrir les ports de manière appropriée en fonction des tâches automatisées. J'ai les ports suivants ouverts dans le cadre du groupe de sécurité pour les instances EC2 afin de démontrer les exemples mentionnés dans le didacticiel.
application gratuite de téléchargement de mp3 pour téléphone android
Dans l'écran ci-dessus, j'ai mentionné l'ouverture du port 8080 comme je vais le montrer à propos de l'automatisation de l'automatisation du déploiement de logiciels à l'aide de Tomcat, ce qui sera utile d'un point de vue DevOps, en particulier pendant le processus de livraison continue.
Installation d'Ansible avec YUM
Comme mentionné précédemment, j'utiliserai une machine de contrôle et une machine cible. Pour commencer l'installation, suivez les étapes ci-dessous sur les deux machines.
à) Créez un identifiant commun sur les deux machines, pour Exemple , ansible avec les privilèges SUDO. Cet identifiant sera utilisé pour communiquer entre toutes les machines impliquées pour l'automatisation des tâches.
# useradd ansible # passwd ansible
b) Modifier le / etc / ssh / sshd_config fichier sur le machine de contrôle et décommentez les lignes pour PasswordAuthentication et PermitRootLogin
Effectuez les étapes ci-dessus sur les deux machines. Une fois terminé, redémarrez le sshd service sur les deux machines.
# systemctl restart sshd
c) Pour une automatisation complète des tâches, nous aurons besoin d'une authentification SSH sans mot de passe, sinon l'ensemble du processus ne sera pas utilisé si vous devez saisir le mot de passe à chaque fois.
Donc, postez les modifications effectuées ci-dessus si nous exécutons la commande ssh et ssh, nous devrons saisir le mot de passe à chaque fois, ce qui n'est pas la bonne procédure pour exécuter les tâches Ansible.
ré) Pour activer l'authentification sans mot de passe, suivez les étapes ci-dessous. Ajoutez d'abord l'utilisateur ansible à la / etc / sudoers fichier sur les deux machines qui permettra à l'utilisateur ansible pour exécuter toute commande nécessitant des privilèges root.
Enregistrez et quittez le fichier après avoir ajouté l'utilisateur.
est) À l'avenir, nous utiliserons l'utilisateur ansible pour effectuer toutes les étapes. Alors passez à l'utilisateur ansible.
Machine de contrôle su - ansible ET Machine cible su - ansible
Machine de contrôle ssh-keygen
Machine cible ssh-keygen
Copiez la clé ssh sur la machine cible et vice versa.
Machine de contrôle ssh-copie-id
Machine cible ssh-copie-id
meilleur endroit pour regarder l'anime gratuitement
Nous pouvons maintenant nous connecter sans entrer le mot de passe. Après la vérification de la connectivité ssh sur les deux machines et être connecté en tant qu'utilisateur ansible.
Machine de contrôle: ssh ansible @
Machine cible: ssh ansible @
F) Installez wget s'il n'est pas installé sur les deux machines.
$ sudo yum install wget -y
g) Nous pouvons maintenant installer ansible sur la machine de contrôle uniquement en activant le dépôt EPEL de fedora qui fournit des progiciels complémentaires. Effectuez les étapes suivantes pour installer ANSIBLE.
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
La version ansible utilisée est la 2.5.3
h) Modifier le ansible.cfg et activez le paramètre de fichier d'inventaire sur la machine de contrôle.
$ sudo vi /etc/ansible/ansible.cfg
je) Ansible utilise le concept d'inventaire pour gérer et suivre les machines cibles. Par défaut, ce fichier se trouve dans / etc / ansible / hosts et peut également être modifié. Un fichier hôte se compose de groupes pour une meilleure classification et de plusieurs machines sous le groupe. Toutes les machines requises peuvent être ajoutées à ces groupes.
Chaque groupe est indiqué par un crochet et un nom de groupe à l'intérieur. Un serveur peut en fait exister dans plusieurs groupes.
Modifier le fichier d'inventaire / etc / ansible / hosts et ajoutez tous les serveurs qui doivent être gérés.
j) Pour tester la connectivité des serveurs sous le groupe du serveur Web, exécutez le ping possible commande comme indiqué. Ici ping est un module qui exécute une fonction particulière pour tester si les hôtes peuvent être connectés comme défini dans le fichier d'inventaire ou non. Nous en verrons plus sur les différents modules et leurs exemples dans la section suivante.
$ ansible webservers –m ping
Pour lister les hôtes dans le fichier d'inventaire, vous pouvez exécuter la commande ci-dessous
$ ansible webservers --list-hosts
Utilisation d'Ansible
Ansible se compose de 3 composants principaux
- Machine de contrôle
- Inventaire
- Playbook
La machine de contrôle gère l'exécution du Playbook. Il peut être installé sur votre ordinateur portable ou sur n'importe quelle machine sur Internet.
Le fichier d'inventaire fournit une liste complète de toutes les machines cibles sur lesquelles différents modules sont exécutés en établissant une connexion ssh et en installant les logiciels nécessaires.
Le playbook se compose d'étapes que le mécanisme de contrôle exécutera sur les serveurs définis dans le fichier d'inventaire.
Il est très important de comprendre ici qu'Ansible interagit avec tous les serveurs définis dans l'inventaire via le protocole SSH qui est une méthode sécurisée de connexion à distance. Chaque opération est effectuée et le transfert de fichiers est crypté.
Ainsi, comme vous l'auriez vu dans la section précédente, Ansible n'utilise aucun type de base de données pour l'installation et est très facile à installer, nous allons maintenant procéder à l'utilisation réelle d'Ansible en commençant par Modules qui est le bloc de construction principal.
Modules Ansible
Les modules sont les principaux blocs de construction d'Ansible et sont essentiellement des scripts réutilisables qui sont utilisés par les playbooks Ansible. Ansible est livré avec un certain nombre de modules réutilisables. Ceux-ci incluent des fonctionnalités de contrôle des services, l'installation de progiciels, l'utilisation de fichiers et de répertoires, etc.
La syntaxe est la suivante lors de l'exécution des commandes ad-hoc qui aident à exécuter des tâches simples ou simples une seule fois et qui n'ont pas besoin d'être exécutées plus tard. Pour Par exemple. installer simplement Tomcat sur tous les serveurs.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Jetons un coup d'œil à certains des modules Ansible les plus populaires et à leur utilisation via les commandes ad-hoc et plus tard dans le playbook.
# 1) Module de configuration
Pour obtenir des informations sur le réseau ou le matériel ou la version du système d'exploitation ou des informations relatives à la mémoire, le module de configuration vous aidera à rassembler les mêmes informations sur les machines cibles. Sur le contrôle, la machine exécute la commande ci-dessous.
$ ansible webservers –m setup
# 2) Module de commande
Le module de commande exécute simplement une commande spécifique sur la machine cible et donne la sortie.
Certains des exemples sont donnés ci-dessous
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) Module Shell
Pour exécuter n'importe quelle commande dans le shell de votre choix, vous pouvez utiliser le module Shell. Les commandes du module shell sont exécutées dans / bin / sh shell et vous pouvez utiliser les opérateurs comme «>» ou «|» (symbole de tube ou même des variables d'environnement.
Donc, la principale différence entre le module Shell et le module de commande est que si vous n'avez pas besoin d'utiliser des opérateurs comme ceux mentionnés, vous pouvez utiliser le module de commande.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
Sur les machines sous le groupe de serveurs Web, vérifiez le fichier créé et exécutez la commande pour afficher le fichier texte.
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) Module utilisateur
En utilisant ce module, on peut créer ou supprimer des utilisateurs.
Pour ajouter un utilisateur
$ ansible webservers -m user -a 'name=user1 password=user1' --become
Pour supprimer l'utilisateur
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Options:
- devenir - Privilège au super-utilisateur pour exécuter la commande
- état = absent pour supprimer l'utilisateur
# 5) Module de fichiers
Ce module est utilisé pour créer des fichiers, des répertoires, définir ou modifier les autorisations et la propriété des fichiers, etc.
Exemple 1: Créer un fichier
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Exemple 2: Créer un annuaire
Pour créer un répertoire à l'aide du module de fichiers, vous devez définir deux paramètres.
- Path (alias - name, dest) - C'est le chemin absolu du répertoire à créer.
- État - Vous devez saisir la valeur 'répertoire'. Par défaut, la valeur est 'fichier'.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
Exemple 3: Supprimer un fichier
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Exemple 4: Supprimer un répertoire
Vous pouvez supprimer un répertoire en définissant la valeur du paramètre d'état sur absent . Le répertoire et tout son contenu seront supprimés.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
application pour planifier des publications instagram gratuitement
# 6) Module de copie
Il est utilisé pour copier des fichiers sur plusieurs machines cibles.
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) Gestion des packages logiciels
Si vous devez installer des progiciels via «yum» ou «apt», vous pouvez utiliser les commandes ci-dessous.
Exemple 1: Installez GIT
$ ansible webservers –m yum -a “name=git state=present” --become
Dans la fenêtre de droite, vous pouvez voir si git n'est pas installé, il donnera la commande introuvable et une fois installé, il affichera la sortie.
Dans cette commande, état = présent vérifiera si le package est installé ou non et s'il n'est pas installé, il installera la dernière version.
Exemple 2: Vérifiez si le package est installé et mettez-le à jour avec la dernière version.
$ ansible webservers -m yum -a “name=git state=latest”
Dans la commande ci-dessus, état = dernier mettra à jour le package vers la dernière version uniquement.
Exemple 3: Installez Apache Webserver
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Exemple 4: Vérifiez si Maven est installé ou non.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Module de gestion des services
Pour gérer les services avec ansible, nous utilisons un module 'un service'.
Démarrer un service
$ ansible webservers -m service -a “name=httpd state=started” --become
Arrêter un service
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Redémarrer un service
$ ansible webservers -m service -a “name=httpd state=restarted --become
Cliquez sur ici pour obtenir la liste complète des modules.
Résumé
Dans ce didacticiel, je vous ai présenté les concepts de base et les composants d'Ansible et nous en avons également vu plus sur l'installation, la configuration et l'utilisation d'Ansible à l'aide des modules Ansible qui est le composant principal de l'exécution d'Ansible.
Dans notre prochain didacticiel, nous nous concentrerons sur l'aspect très important de l'écriture de playbooks pour l'automatisation des tâches et des coffres Ansible pour conserver les données sensibles dans des fichiers cryptés.
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Tutoriels Eclipse détaillés pour les débutants
- Rôles Ansible, intégration avec Jenkins dans DevOps et modules EC2
- Automatisation des tâches à l'aide de playbooks Ansible et de coffres-forts Ansible avec des exemples
- Installation et configuration pas à pas d'Appium Studio
- Introduction au langage de programmation Java - Tutoriel vidéo
- Configuration et installation complètes de WebDriver avec Eclipse - Tutoriel Selenium # 9
- Téléchargement et installation de Jira avec la configuration de la licence Jira
- Processus d'introduction et d'installation de Python