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.