Ansible adalah manajemen konfigurasi sumber terbuka dan alat penyebaran aplikasi. Ini membantu mengurangi overhead manajerial dengan mengotomatiskan penerapan aplikasi dan mengelola infrastruktur TI.
Menggunakan mungkin kita akan menginstal server web Apache2 di Ubuntu 20.04. Untuk itu kita perlu membuat konfigurasi dalam sintaks YAML yang disebut Ansible playbook .
Biasanya, ada node kontrol dan node host. Ansible dipasang di node kontrol dan akan menjalankan buku pedoman untuk disebarkan di node host. Di lab ini, kita akan menginstal dan menggunakannya dalam satu node.
Menginstal memungkinkan di Ubuntu
Pertama, perbarui sistem Anda. Perintah berikut mengambil paket terbaru:
$ sudo apt update
Ansible tersedia di repositori dasar Ubuntu 20.04. Untuk menginstal mungkin jalankan perintah berikut:
$ sudo apt install ansible -y
Kemudian, periksa versi yang memungkinkan menggunakan perintah,
$ ansible --version
File konfigurasi host disimpan di file /etc/ansible/hosts. Tambahkan IP server localhost Anda ke file dengan bantuan perintah berikut. Pastikan Anda memiliki pengguna sudo. Dalam kasus kami, 'ubuntu' memiliki hak istimewa Sudo. Di sini, saya telah memberikan nama saya sebagai 'server saya' Anda dapat memberikan nama Anda sendiri. Juga, ingat pengguna ubuntu adalah pengguna Sudo di sistem.
$ echo "myserver ansible_host=127.0.0.1 ansible_user=ubuntu" >> /etc/ansible/host
Cek saja dengan menggunakan perintah,
$ ansible myserver -m ping
Anda akan mendapatkan respons pong yang mirip dengan tangkapan layar di bawah ini.
Membuat Playbook
Sekarang, mari kita buat buku pedoman bernama 'apache.yml' untuk menginstal dan menjalankan server web apache terbaru.
$ vi apache.yml
Tambahkan konten berikut ke file
---
- 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
Di sini,
- tuan rumah :adalah nama host seperti yang Anda definisikan di file /etc/ansible/hosts
- menjadi:benar adalah eskalasi hak istimewa untuk menjadi sudo
- var :untuk mendefinisikan variabel
- tugas :empat tugas didefinisikan. Menginstal apache, menyalin halaman indeks, menyiapkan virtual host, mengizinkan http dari firewall UFW jika sudah diaktifkan.
- penangan :Untuk me-restart Apache jika semua tugas lainnya berhasil.
Seiring dengan playbook, Anda harus mendefinisikan tiga file lainnya vars/default.yml, files/Apache.conf.j2 dan files/index.html.j2 . Mari kita buat satu per satu.
vars/default.yml
File default.yml berisi nama domain, lokasi file konfigurasi, dan port http. Buat file dan tambahkan berikut ini.
http_host: "mydomain.local"
http_conf: "my_domain.conf"
http_port: "80"
files/apache.conf.j2
Template konfigurasi apache berisi konfigurasi untuk virtual host. Variabel didefinisikan dalam {{ }} dan diperoleh dari file vars yang didefinisikan di atas. Buat file apache.conf.js dan tambahkan konten berikut.
<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>
files/index.html.j2
Template lain adalah file indeks Anda. Buat file dan tambahkan konten berikut. Anda dapat memodifikasi sesuai kebutuhan Anda.
<html>
<head>
<title>{{ http_host }}</title>
</head>
<body>
<h1>Welcome to {{ http_host }}</h1>
</body>
</html>
Sekarang Anda dapat menjalankan ansible-playbook dengan perintah berikut.
$ ansible-playbook apache.yml --ask-become-pass
Anda akan diminta memasukkan kata sandi untuk pengguna sudo. Status harus ok seperti yang ditunjukkan di bawah ini.
Ini juga akan menjalankan Apache pada port default 80, Anda dapat memverifikasi browsing localhost di browser favorit Anda.
Kesimpulan
Ansible adalah alat yang berguna karena tanpa agen dan konfigurasi penulisannya mudah. Anda dapat menelusuri lebih banyak konfigurasi dari dokumentasi resmi yang memungkinkan. Harap beri komentar jika Anda memiliki masalah saat menulis buku pedoman di ansible.