“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äň!