Playbook Ansible à installer et à configurer Apache sur Ubuntu

Ansible est un outil open source de gestion de configuration et de déploiement d’applications. Il permet de réduire les frais généraux de gestion en automatisant le déploiement de l’application et en gérant l’infrastructure informatique.

Utilisant ansible nous allons installer le serveur Web apache2 dans Ubuntu 20.04. Pour lequel nous devons créer une configuration en syntaxe YAML appelée Livres de jeu 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 mise à jour appropriée

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

Version Ansible

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 sudo utilisateur. Dans notre cas, ‘ubuntu’ a sudo privilège. Ici, j’ai donné mon nom en tant que ‘myserver’ vous pouvez donner le vôtre. N’oubliez pas non plus que l’utilisateur ubuntu est sudo utilisateur dans le système.

$ echo “monserveur ansible_host=127.0.0.1 ansible_user=ubuntu” >> /etc/ansible/host

Vérifiez-le simplement en utilisant la commande,

$ ansible monserveur -m ping

Vous devriez obtenir une réponse pong similaire à la capture d’écran ci-dessous.

Ping-pong Ansible Réponse de ping-pong raisonnable

Création d’un livre de jeu

Maintenant, créons un playbook nommé ‘apache.yml’ pour installer et exécuter le dernier serveur Web Apache.

$ via 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éberger: est le nom d’hôte tel que vous l’avez défini dans le fichier /etc/ansible/hosts
  • devenir vrai est une escalade de privilège pour être sudo
  • à qui: pour définir les variables
  • Tâches: quatre tâches sont définies. Installer Apache, copier la page d’index, configurer l’hôte virtuel, autoriser http à partir du pare-feu UFW s’il est déjà activé.
  • gestionnaires: Pour redémarrer Apache si toutes les autres tâches sont réussies.

Avec 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 : “mondomaine.local”
http_conf : “mon_domaine.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é à saisir un mot de passe pour le sudo utilisateur. L’état devrait être ok comme indiqué ci-dessous.

Sortie du livre de lectureSortie du livre de lecture

Cela exécutera également Apache sur le port par défaut 80, vous pouvez vérifier la navigation sur localhost dans votre navigateur préféré.

sommaire

Conclusion

Ansible est un outil utile car il est sans agent et l’écriture de la configuration est facile. Vous pouvez parcourir plus de configurations à partir de documentation officielle responsable. Veuillez commenter si vous rencontrez des problèmes lors de la rédaction du playbook sur ansible.