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!