GNU/Linux >> Znalost Linux >  >> Ubuntu

Ansible Playbook k instalaci a nastavení Apache na Ubuntu

Ansible je open-source nástroj pro správu konfigurace a nasazení aplikací. Pomáhá snižovat manažerské režie automatizací nasazení aplikace a správou IT infrastruktury.

Pomocí ansible chystáme se nainstalovat webový server apache2 v Ubuntu  20.04. Pro které potřebujeme vytvořit konfiguraci v syntaxi YAML nazvanou Ansible playbooks .

Normálně existuje řídicí uzel a hostitelské uzly. Ansible je nainstalován v řídicím uzlu a spustí playbook pro nasazení v hostitelských uzlech. V této laboratoři jej nainstalujeme a použijeme v jediném uzlu.

Instalace ansible na Ubuntu

Nejprve aktualizujte svůj systém. Následující příkaz načte nejnovější balíček:

$ sudo apt update

Ansible je k dispozici v základním úložišti Ubuntu 20.04. Chcete-li nainstalovat ansible, spusťte následující příkaz:

$ sudo apt install ansible -y

Poté zkontrolujte verzi ansible pomocí příkazu

$ ansible --version

Konfigurační soubor hostitele je uložen v souboru /etc/ansible/hosts. Přidejte IP svého serveru localhost do souboru pomocí následujícího příkazu. Ujistěte se, že máte uživatele sudo. V našem případě má 'ubuntu' privilegium sudo. Zde jsem uvedl své jméno jako 'můj server', můžete uvést své vlastní. Pamatujte také, že uživatel ubuntu je v systému uživatelem sudo.

$ echo "myserver ansible_host=127.0.0.1 ansible_user=ubuntu" >> /etc/ansible/host

Stačí to zkontrolovat pomocí příkazu

$ ansible myserver -m ping 

Měli byste dostat pongovou odpověď podobnou níže uvedenému snímku obrazovky.

Vytvoření příručky

Nyní pojďme vytvořit playbook s názvem 'apache.yml' pro instalaci a spuštění nejnovějšího webového serveru Apache.

$ vi apache.yml

Přidejte do souboru následující obsah

---
- 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

Tady,

  • hostitel :je název hostitele, jak jste definovali v souboru /etc/ansible/hosts
  • stát:pravdivý je eskalace privilegií za sudo
  • vars :pro definování proměnných
  • úkoly :jsou definovány čtyři úkoly. Instalace apache, kopírování indexové stránky, nastavení virtuálního hostitele, povolení http z UFW firewallu, pokud je již povoleno.
  • správci :Restartovat apache, pokud jsou všechny ostatní úlohy úspěšné.

Spolu s playbook byste měli definovat tři další soubory vars/default.yml, files/apache.conf.j2 a files/index.html.j2 . Pojďme je vytvořit jeden po druhém.

vars/default.yml

Soubor default.yml obsahuje název domény, umístění konfiguračního souboru a port http. Vytvořte soubor a přidejte následující.

http_host: "mydomain.local"
http_conf: "my_domain.conf"
http_port: "80"

files/apache.conf.j2

Šablona konfigurace Apache obsahuje konfiguraci pro virtuální hostitele. Proměnné jsou definovány v {{ }} a jsou získány ze souboru vars definovaného výše. Vytvořte soubor apache.conf.js a přidejte následující obsah.

<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>

soubory/index.html.j2

Další šablonou je váš indexový soubor. Vytvořte soubor a přidejte následující obsah. Můžete upravit podle svých požadavků.

<html>
   <head>
       <title>{{ http_host }}</title>
   </head>
   <body>
       <h1>Welcome to {{ http_host }}</h1>
   </body>
</html>

Nyní můžete spustit ansible-playbook pomocí následujícího příkazu.

$ ansible-playbook apache.yml --ask-become-pass

Budete vyzváni k zadání hesla pro uživatele sudo. Stav by měl být v pořádku, jak je uvedeno níže.

Tím se také spustí apache na výchozím portu 80, můžete si ověřit procházení localhost ve svém oblíbeném prohlížeči.

Závěr

Ansible je užitečný nástroj, protože je bez agenta a zápis konfigurace je snadný. Další konfigurace můžete procházet z oficiální dokumentace. Prosím, napište komentář, pokud máte nějaké problémy při psaní playbooku na ansible.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat Ansible na Ubuntu 18.04 LTS

  2. Jak nainstalovat Apache Maven na Ubuntu 18.04 a 16.04

  3. Nainstalujte a nakonfigurujte Apache Spark na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat Ansible na Ubuntu 20.04

  2. Jak nainstalovat Apache Hive na Ubuntu

  3. Pomocí Ansible nainstalujte a nakonfigurujte Elasticsearch na Ubuntu 20.04

  1. Jak nainstalovat a používat Encryptpad na Ubuntu 16.04

  2. Jak nainstalovat a nakonfigurovat Apache Hadoop na Ubuntu 20.04

  3. Jak nainstalovat a nastavit RabbitMQ na Ubuntu 16.04