“Ansible” -i ulanyp, birnäçe Linux serwerinde bir wagtyň özünde WordPress ýerleşdirmelerini nädip awtomatlaşdyrmaly - 3-nji bölüm


Bu “Ansible” seriýasynyň öňki iki makalasynda buýruklary işletmek we bir wagtyň özünde birnäçe uzak serwerlerde çylşyrymly işleri ýerine ýetirmek üçin “Ansible” -i nädip gurmalydygyny we sazlamalydygyny düşündirdik.

Häzirki sapakda şol bir uzakdaky serwerlerde WordPress-i nädip gurmalydygyny düşündireris:

node1: 192.168.0.29
node2: 192.168.0.30

“Apache” -ni gurnadyk, işleddik we başladyk (iň soňky sapakda başlangyç mysal hökmünde web serweri bilen näme üçin işlemegimizi şu wagta çenli bilýän bolsaňyz gerek).

Ansible bilen baglanyşykly düşünjeler bilen tanyşdygyňyza göz ýetirmek üçin dowam etmezden ozal 1-nji bölümi we 2-nji bölümi okamagyňyzy maslahat berýärin.

1-nji ädim: Jogapkärçilikli rollar bilen tanyşdyrmak

Oýunlara has köp meseleler goşup başlanyňyzda, “Playbooks” -yňyzy dolandyrmak has kynlaşyp biler. Şol sebäpli, şol ýagdaýlarda maslahat berilýän çemeleşme (aslynda ähli ýagdaýlarda) aýratyn faýllarda her bir iş topary üçin görkezmeleri öz içine alýan katalog gurluşyny ulanmakdyr.

Bu çemeleşme, bu konfigurasiýa faýllaryny ýoldan has aýry taslamalarda gaýtadan ulanmaga mümkinçilik berýär. Bu faýllaryň her biri “Ansible” ekosistemasynda rol diýilýän zady kesgitleýär.

Biziň ýagdaýymyzda iki rol dörederis. Olardan biri (wp-baglylyklar diýilýär) WordPress baglylyklaryny gurmak üçin ulanylar (PHP we MariaDB - Apache-i eýýäm gurlan ýaly gurnamagyň zerurlygy ýok).

Beýleki roly (wp-install-config diýilýär) WordPress-i gurmak we konfigurasiýa bilen baglanyşykly ähli zerur meseleleri öz içine alar.

2-nji ädim: Jogapkärçilikli rollary döretmek

“Ansible”, rollarymyz üçin katalog gurluşyny döretmäge kömek etjek “ansible-galaxy” atly kömekçi enjam bilen gelýär. Muny/etc/ansible/playbooks-da ederis (2-nji bölümde döretdik), ýöne teoriýa boýunça isleseňiz başga bir katalogda gurup bilersiňiz.

# cd /etc/ansible/playbooks
# ansible-galaxy init wp-dependencies
# ansible-galaxy init wp-install-config

Indiki täze döredilen rollary tassyklaýar.

# ls -R /etc/ansible/playbooks

Aboveokardaky suratda, ansible-galaktikanyň rollarymyz bilen birmeňzeş iki katalogy we beýleki kiçi bukjalary (defoltlar, faýllar, işleýjiler, meta, meseleler, şablonlar we wersiýalar) we hersiniň içinde README.md faýly döredendigini görüp bileris. olar.

Mundan başga-da, faýllardan we şablonlardan başga, öň sanalan ähli kataloglaryň içinde main.yml atly YAML faýly döredildi.

Aşakdaky konfigurasiýa faýllaryny görkezilişi ýaly redaktirlemek bilen başlarys:

1. /etc/ansible/playbooks/wp-dependencies/tasks/main.yml. Bu seriýanyň öňki sapaklary bilen bilelikde yzarlamadyk bolsaňyz, httpd-i hem goşýarys.

---
# tasks file for wp-dependencies
- name: Update packages (this is equivalent to yum update -y)
  yum: name=* state=latest

- name: Install dependencies for WordPress
  yum: name={{ item }} state=present
  with_items:
        - httpd
        - mariadb-server 
        - mariadb
        - php 
        - php-mysql
        - MySQL-python

- name: Ensure MariaDB is running (and enable it at boot)
  service: name=mariadb state=started enabled=yes

- name: Copy ~/.my.cnf to nodes
  copy: src=/root/.my.cnf dest=/root/.my.cnf

- name: Create MariaDB database
  mysql_db: name={{ wp_mysql_db }} state=present

- name: Create MariaDB username and password
  mysql_user:
        login_user=root
        login_password=YourMariaDBRootPasswordHere
        name={{ wp_mysql_user }}
        password={{ wp_mysql_password }}
        priv=*.*:ALL

2. /etc/ansible/playbooks/wp-dependencies/default/main.yml

---
# defaults file for wp-dependencies
  wp_mysql_db: MyWP
  wp_mysql_user: wpUser
  wp_mysql_password: wpP4ss

3. /etc/ansible/playbooks/wp-install-config/tasks/main.yml:

---
# tasks file for wp-install-config
- name: Create directory to download WordPress
  command: mkdir -p /opt/source/wordpress

- name: Download WordPress
  get_url: url=https://www.wordpress.org/latest.tar.gz dest=/opt/source/wordpress/wordpress.tar.gz validate_certs=no

- name: Extract WordPress
  command: "tar xzf /opt/source/wordpress/wordpress.tar.gz -C /var/www/html --strip-components 1"

- name: Send config file
  copy: src=/root/wp-config-sample.php dest=/var/www/html/wp-config.php mode=0644

4. wp-config-sample.php (bu Pastebinde berilýär) aşakdaky ýaly edip, ony Ansible gözegçilik enjamyňyza ýazdyryň (ýokardaky iň soňky göçürme görkezmesinden görnüşi ýaly, superuseriň (/ root) baş katalogyna göçürip aldym /wp-config-sample.php).

Üns beriň: DB_NAME, DB_USER we DB_PASSWORD üýtgeýjileriň bahasynyň /etc/ansible/playbooks/wp-dependencies/defaults/main.yml bilen deňdigini ýadyňyzdan çykarmaň.

…
/** The name of the database for WordPress */
define('DB_NAME', 'MyWP');

/** MySQL database username */
define('DB_USER', 'wpUser');

/** MySQL database password */
define('DB_PASSWORD', 'wpP4ss');
…

5. Kök paroly boş bolan täze maglumat bazasy serwer gurnamalary üçin, bu ýagdaýda, gynansak-da, mysql_secure_installation arkaly her bir enjamda ulanyjy köküniň parolyny aýratynlykda sazlamaly.

Meniň bilşime görä, WordPress üçin administratiw maglumat bazasyny döreden şol bir ädimde kök paroly Ansible-iň üsti bilen gurnamaga mümkinçilik berýän iş usuly ýok.

Hosthli öý eýelerinde şol bir paroly ulanýandygyňyza göz ýetiriň, soňra şahsyýet maglumatlaryny /root/.my.cnf-a göçüriň (hakyky ýeri siziň ýagdaýyňyzda tapawutlanyp biler, ýöne ähli ýagdaýlarda bu mesele üçin src parametriniň bahasyna laýyk gelmeli ~/.My.cnf /etc/ansible/playbooks/wp-dependencies/tasks/main.yml düwünlerine göçüriň).

Şol faýlda (ýokarda serediň) kök parolynyň YourMariaDBRootPassworddygyny çakladyk.

6. Ondan soň, oýnawaç kitabymyz (/etc/ansible/playbooks/playbook.yml) öňki sapak bilen deňeşdirilende has tertipli we ýönekeý görüner:

# cat playbook.yml
- hosts: webservers
  roles:
        - wp-dependencies
        - wp-install-config

Ahyrynda, oýun kitabymyza ýüz tutup, bu meseleleri ýerine ýetirmegiň wagty geldi:

# ansible-playbook playbook.yml

Indi, node1 192.168.0.29 we node2 192.168.0.30 IP adreslerini ulanyp, WordPress Admin sahypasyna girip biljekdigimizi barlalyň:

Soňky iki ädimi aşakdaky ekran ýaýlymynda görüp bilersiňiz:

Görşüňiz ýaly, “Ansible” -i ulanyp, köp zähmet çekmän birnäçe WordPress gurnamalaryny gurup bilersiňiz. Soňra her sahypany aýratyn düzmek üçin degişli Admin ulanyjy interfeýsini ulanyp bilersiňiz.

Jemleýji pikirler

WordPress-i ýerleşdirmek üçin başga bir paýlaýyş ulanýan bolsaňyz, paketleriň ady üýtgäp biler, ýöne Apache web serwerini, MariaDB maglumat bazasynyň serwerini we Python MySQL modulyny gurmak üçin gelýär. Şeýle bolsa, gurnamaly takyk bukjanyň adyny gözlemek üçin paýlaýyş programma üpjünçiligini dolandyryş ulgamyny ulanyň.

Gysgaça mazmun

Bu seriýamyzda buýruklary işletmek we bir wagtyň özünde birnäçe Linux maşynlarynda çylşyrymly işleri ýerine ýetirmek üçin Ansible-i nädip ulanmalydygyny düşündirdik.

Şeýle mysallardan biri, bu gollanmada ara alyp maslahatlaşyşymyz ýaly WordPress-i gurmakdyr. Ulgam dolandyryjysy ýa-da blogçy bolsaňyzam, bu gollanmada düşünjeleri we mysallary peýdaly taparsyňyz diýip umyt edýärin.

Iň gowusy, kömek gerek bolsa ýa-da haýsydyr bir teswir ýa-da teklip bar bolsa, bize bir setir goýmakdan çekinmäň!