GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Ansible Playbook pour installer et configurer Apache sur Ubuntu

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.


Ubuntu
  1. Comment installer et configurer Ansible sur Ubuntu 20.04

  2. Comment installer et configurer Ansible sur Ubuntu 18.04 LTS

  3. Comment installer Apache Maven sur Ubuntu 18.04 et 16.04

  4. Installer et configurer Apache Spark sur Ubuntu 20.04

  5. Utiliser Ansible pour installer et configurer Elasticsearch sur Ubuntu 20.04

Comment installer et configurer Samba sur Ubuntu

Comment installer et utiliser BleachBit 1.12 sur Ubuntu 16.04

Installer Apache OpenOffice dans Ubuntu et Linux Mint

Comment installer et configurer Apache Spark sur Ubuntu 21.04

Comment installer et configurer Ansible sur Ubuntu

Comment installer et configurer Apache Spark sur Ubuntu/Debian