Kif Awtomatizza Skjeramenti Simultanji ta 'WordPress f'Servers Linux Multipli bl-Użu ta' Ansible - Parti 3


Fiż-żewġ artikoli preċedenti ta 'din is-serje Ansible, spjegajna kif tinstalla u tikkonfigura Ansible biex tmexxi kmandi u twettaq kompiti kumplessi f'diversi servers remoti simultanjament.

Fit-tutorja attwali se nispjegaw kif twaqqaf WordPress fl-istess servers remoti:

node1: 192.168.0.29
node2: 192.168.0.30

fejn installajna, ppermettejna, u bdejna Apache (probabbilment issa taf għaliex għażilna li naħdmu ma 'web server bħala eżempju inizjali fl-aħħar tutorja).

Inħeġġiġkom ħafna taqra l-Parti 1 u l-Parti 2 qabel ma tkompli tkompli sabiex tiżgura li tkun familjari mal-kunċetti assoċjati ma’ Ansible.

Pass 1: Introduzzjoni ta' Rwoli Ansible

Hekk kif tibda żżid aktar u aktar kompiti mad-drammi, il-Playbooks tiegħek jistgħu jsiru dejjem aktar diffiċli biex jiġu mmaniġġjati. Għal dik ir-raġuni, l-approċċ rakkomandat f'dawk is-sitwazzjonijiet (fil-fatt, fil-każijiet kollha) huwa li tintuża struttura tad-direttorju li jkun fiha d-direttivi għal kull grupp ta 'kompiti f'fajls distinti.

Dan l-approċċ jippermettilna li nerġgħu nużaw dawn il-fajls ta 'konfigurazzjoni fi proġetti separati aktar 'l isfel fit-triq. Kull wieħed minn dawn il-fajls jiddefinixxi dak li jissejjaħ rwol fl-ekosistema Ansible.

Fil-każ tagħna, se noħolqu żewġ rwoli. Waħda minnhom (imsejħa wp-dependencies) se tintuża biex tinstalla d-dipendenzi ta 'WordPress (PHP u MariaDB - l-ebda ħtieġa li tinstalla Apache peress li hija diġà installata).

Ir-rwol l-ieħor (imsejjaħ wp-install-config) se jinkludi l-kompiti kollha meħtieġa assoċjati mal-installazzjoni u l-konfigurazzjoni ta 'WordPress.

Pass 2: Noħolqu Rwoli Ansible

Ansible jiġi b'utilità msejħa ansible-galaxy li tgħinna noħolqu l-istruttura tad-direttorju għar-rwoli tagħna. Dan se nagħmluh f’/etc/ansible/playbooks (li ħloqna fil-Parti 2) imma fit-teorija tista’ twaqqafha f’direttorju ieħor jekk trid.

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

Li jmiss tikkonferma r-rwoli maħluqa ġodda.

# ls -R /etc/ansible/playbooks

Fl-immaġni ta 'hawn fuq nistgħu naraw li ansible-galaxy ħoloq żewġ direttorji bl-istess isem tar-rwoli tagħna, u subdirettorji oħra (defaults, files, handlers, meta, tasks, templates, u vars) u fajl README.md ġewwa kull wieħed minn minnhom.

Barra minn hekk, inħoloq fajl YAML bl-isem main.yml ġewwa d-direttorji kollha elenkati qabel, bl-eċċezzjoni tal-fajls u l-mudelli.

Aħna se nibdew billi neditjaw il-fajls tal-konfigurazzjoni li ġejjin kif indikat:

1. /etc/ansible/playbooks/wp-dependencies/tasks/main.yml. Innota li qed ninkludu httpd f'każ li ma segwejtx flimkien mat-tutorials preċedenti ta' din is-serje.

---
# 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/defaults/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 (provdut f'dan Pastebin) kif ġej u ssejvjah fil-magna tal-kontrollur Ansible tiegħek (kif tistgħu taraw fid-direttiva tal-aħħar kopja hawn fuq, niżżilt fid-direttorju tad-dar tas-superuser (/ root /wp-config-sample.php).

Importanti: Jekk jogħġbok innota li l-valur għall-varjabbli DB_NAME, DB_USER, u DB_PASSWORD huma l-istess bħal f'/etc/ansible/playbooks/wp-dependencies/defaults/main.yml:

…
/** 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. Għal installazzjonijiet ġodda ta 'server ta' database fejn il-password ta 'l-għerq hija vojta, bħal f'dan il-każ, sfortunatament għandna bżonn nistabbilixxu l-password għall-għeruq ta' l-utent individwalment f'kull magna permezz ta 'mysql_secure_installation.

Safejn naf jien, m'hemm l-ebda soluzzjoni disponibbli li tippermettilek twaqqaf il-password ta 'l-għeruq permezz ta' Ansible fl-istess pass fejn toħloq il-kont tad-database amministrattiva għal WordPress.

Kun żgur li tuża l-istess password fl-hosts kollha, imbagħad tikkopja l-kredenzjali f’/root/.my.cnf (il-post attwali jista’ jkun differenti fil-każ tiegħek, iżda fil-każijiet kollha jeħtieġ li jaqbel mal-valur tal-parametru src għall-kompitu Ikkopja ~/.my.cnf għal nodi f'/etc/ansible/playbooks/wp-dependencies/tasks/main.yml).

F'dak il-fajl (ara hawn fuq) asssumina li l-password għall-għeruq hija YourMariaDBRootPassword.

6. Sussegwentement, il-playbook tagħna (/etc/ansible/playbooks/playbook.yml) se jidher ħafna aktar organizzat u sempliċi meta mqabbel mat-tutorja preċedenti:

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

Fl-aħħarnett, wasal iż-żmien li tmexxi dawn il-kompiti billi tinvoka l-playbook tagħna:

# ansible-playbook playbook.yml

Issa ejja niċċekkjaw jekk nistgħux naċċessaw il-paġna Admin WordPress billi tuża l-indirizzi IP ta 'node1 192.168.0.29 u node2 192.168.0.30:

Tista' tara l-aħħar żewġ passi fl-iscreencast li ġej:

Kif tistgħu taraw, tista 'twaqqaf installazzjonijiet multipli ta' WordPress bi ftit jew xejn sforz billi tuża Ansible. Imbagħad tista 'tuża l-interface tal-utent Admin rispettiv biex tikkonfigura kull sit separatament.

Konsiderazzjonijiet finali

Jekk qed tuża distribuzzjoni oħra biex tuża WordPress, l-isem tal-pakketti jista 'jvarja, iżda dan jasal għall-installazzjoni tas-server tal-web Apache, is-server tad-database MariaDB, u l-modulu Python MySQL. Jekk dan huwa l-każ, uża s-sistema ta 'ġestjoni tas-softwer tad-distribuzzjoni tiegħek biex tfittex l-isem eżatt tal-pakkett li għandek bżonn tinstalla.

Sommarju

F'din is-serje spjegajna kif tuża Ansible biex tmexxi kmandi u tesegwixxi kompiti kumplessi f'diversi magni Linux simultanjament.

Wieħed minn dawn l-eżempji huwa li twaqqaf WordPress, kif iddiskutejna f'din il-gwida. Kemm jekk inti amministratur tas-sistema jew blogger, nispera li sibt il-kunċetti u l-eżempji f'dan it-tutorja utli.

Awguri u toqgħodx lura milli tibgħatilna linja jekk għandek bżonn għajnuna jew għandek xi kummenti jew suġġerimenti!