Ansible est un outil open source de gestion de configuration et de déploiement d'applications. Il aide à réduire les frais généraux de gestion en automatisant le déploiement de l'application et en gérant l'infrastructure informatique.
Utiliser ansible nous allons installer le serveur Web apache2 dans Ubuntu 20.04. Pour lesquels nous devons créer une configuration dans la syntaxe YAML appelée Playbooks Ansible .
Normalement, il y a un nœud de contrôle et des nœuds hôtes. Ansible est installé dans le nœud de contrôle et exécutera le playbook à déployer dans les nœuds hôtes. Dans cet atelier, nous allons l'installer et l'utiliser dans un seul nœud.
Installer ansible sur Ubuntu
Tout d'abord, mettez à jour votre système. La commande suivante récupère le dernier package :
$ sudo apt update
Ansible est disponible dans le référentiel de base d'Ubuntu 20.04. Pour installer ansible, exécutez la commande suivante :
$ sudo apt install ansible -y
Ensuite, vérifiez la version ansible à l'aide de la commande,
$ ansible --version
Le fichier de configuration de l'hôte est stocké dans le fichier /etc/ansible/hosts. Ajoutez l'adresse IP de votre serveur localhost au fichier à l'aide de la commande suivante. Assurez-vous d'avoir un utilisateur sudo. Dans notre cas, 'ubuntu' a le privilège sudo. Ici, j'ai donné mon nom en tant que "monserveur" vous pouvez donner le vôtre. N'oubliez pas non plus que l'utilisateur ubuntu est l'utilisateur sudo dans le système.
$ echo "myserver ansible_host=127.0.0.1 ansible_user=ubuntu" >> /etc/ansible/host
Vérifiez-le simplement en utilisant la commande,
$ ansible myserver -m ping
Vous devriez obtenir une réponse pong similaire à la capture d'écran ci-dessous.
Créer un livret
Maintenant, créons un playbook nommé 'apache.yml' pour installer et exécuter le dernier serveur Web apache.
$ vi apache.yml
Ajoutez le contenu suivant au fichier
---
- hosts: myserver
become: true
vars:
- vars/default.yml
- tasks:
- name: Install latest version of Apache
apt: name=apache2 update_cache=yes state=latest
- name: Create document root for your domain
file:
path: "/var/www/{{ http_host }}"
state: directory
owner: "{{ app_user }}"
mode: '0755'
- name: Copy your index page
template:
src: "files/index.html.j2"
dest: "/var/www/{{ http_host }}/index.html"
- name: Set up virtuahHost
template:
src: "files/apache.conf.j2"
dest: "/etc/apache2/sites-available/{{ http_conf }}"
notify: restart-apache
- name: "UFW firewall allow HTTP on port {{ http_port }}"
ufw:
rule: allow
port: "{{ http_port }}"
proto: tcp
handlers:
- name: restart-apache
service:
name: apache2
state: restarted
Ici,
- hôte :est le nom d'hôte tel que vous l'avez défini dans le fichier /etc/ansible/hosts
- devient :vrai est une escalade de privilèges pour être sudo
- vars :pour définir les variables
- tâches :quatre tâches sont définies. Installation d'Apache, copie de la page d'index, configuration de l'hôte virtuel, autorisation http à partir du pare-feu UFW s'il est déjà activé.
- gestionnaires :Pour redémarrer apache si toutes les autres tâches ont réussi.
En plus de playbook, vous devez définir trois autres fichiers vars/default.yml, files/apache.conf.j2 et files/index.html.j2 . Créons-les un par un.
vars/default.yml
Le fichier default.yml contient le nom de domaine, l'emplacement du fichier de configuration et le port http. Créez le fichier et ajoutez ce qui suit.
http_host: "mydomain.local"
http_conf: "my_domain.conf"
http_port: "80"
fichiers/apache.conf.j2
Le modèle de configuration apache contient la configuration de l'hôte virtuel. Les variables sont définies dans {{ }} et sont obtenues à partir du fichier vars défini ci-dessus. Créez le fichier apache.conf.js et ajoutez le contenu suivant.
<VirtualHost *:{{ http_port }}>
ServerAdmin webmaster@localhost
ServerName {{ http_host }}
ServerAlias www.{{ http_host }}
DocumentRoot /var/www/{{ http_host }}
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
fichiers/index.html.j2
Un autre modèle est votre fichier d'index. Créez le fichier et ajoutez le contenu suivant. Vous pouvez modifier selon vos besoins.
<html>
<head>
<title>{{ http_host }}</title>
</head>
<body>
<h1>Welcome to {{ http_host }}</h1>
</body>
</html>
Vous pouvez maintenant exécuter ansible-playbook avec la commande suivante.
$ ansible-playbook apache.yml --ask-become-pass
Vous serez invité à entrer un mot de passe pour l'utilisateur sudo. Le statut devrait être correct comme indiqué ci-dessous.
Cela exécutera également apache sur le port 80 par défaut, vous pouvez vérifier la navigation sur localhost dans votre navigateur préféré.
Conclusion
Ansible est un outil utile car il est sans agent et la configuration d'écriture est facile. Vous pouvez parcourir plus de configurations à partir de la documentation officielle ansible. Veuillez commenter si vous rencontrez des problèmes lors de l'écriture du playbook sur ansible.