Kuinka automatisoida samanaikaisia WordPress-käyttöönottoja useissa Linux-palvelimissa käyttämällä Ansible - Osa 3
Tämän Ansible-sarjan kahdessa edellisessä artikkelissa selitimme, kuinka Ansible asennetaan ja määritetään suorittamaan komentoja ja suorittamaan monimutkaisia tehtäviä useilla etäpalvelimilla samanaikaisesti.
Tässä opetusohjelmassa selitämme, kuinka WordPress asennetaan samoille etäpalvelimille:
node1: 192.168.0.29 node2: 192.168.0.30
mihin asennimme, otimme käyttöön ja käynnistimme Apachen (tiedät todennäköisesti jo nyt, miksi päätimme työskennellä verkkopalvelimen kanssa ensimmäisenä esimerkkinä viimeisessä opetusohjelmassa).
Kehotan teitä lukemaan osat 1 ja 2 ennen kuin jatkat, varmistaaksesi, että olet perehtynyt Ansibleyn liittyviin käsitteisiin.
Vaihe 1: Esittelemme mahdollisia rooleja
Kun lisäät yhä enemmän tehtäviä näytelmiin, Playbooksisi voi tulla yhä vaikeampaa käsitellä. Tästä syystä suositeltava lähestymistapa näissä tilanteissa (oikeastaan kaikissa tapauksissa) on käyttää hakemistorakennetta, joka sisältää ohjeet jokaiselle tehtäväryhmälle erillisissä tiedostoissa.
Tämän lähestymistavan avulla voimme käyttää näitä kokoonpanotiedostoja uudestaan erillisissä hankkeissa matkan varrella. Kukin näistä tiedostoista määrittelee mitä Ansible-ekosysteemissä kutsutaan rooliksi.
Meidän tapauksessamme luomme kaksi roolia. Yhtä niistä (kutsutaan wp-riippuvuuksiksi) käytetään WordPress-riippuvuuksien asentamiseen (PHP ja MariaDB - Apachea ei tarvitse asentaa, koska se on jo asennettu).
Toinen rooli (nimeltään wp-install-config) sisältää kaikki tarvittavat tehtävät, jotka liittyvät WordPressin asennukseen ja kokoonpanoon.
Vaihe 2: Luodaan mahdollisia rooleja
Ansible sisältää apuohjelman nimeltä ansible-galaxy, joka auttaa meitä luomaan hakemistorakenteen rooleillemme. Teemme tämän hakemistossa/etc/ansible/playbooks (jonka loimme osassa 2), mutta teoriassa voit asettaa sen toiseen hakemistoon, jos haluat.
# cd /etc/ansible/playbooks # ansible-galaxy init wp-dependencies # ansible-galaxy init wp-install-config
Seuraava vahvistaa uudet luodut roolit.
# ls -R /etc/ansible/playbooks
Yllä olevasta kuvasta voimme nähdä, että ansible-galaxy loi kaksi hakemistoa samalla nimellä kuin roolimme, ja muut alihakemistot (oletusarvot, tiedostot, käsittelijät, meta, tehtävät, mallit ja vars) sekä README.md-tiedoston jokaisen niitä.
Lisäksi YAML-tiedosto main.yml luotiin kaikkiin aiemmin lueteltuihin hakemistoihin, paitsi tiedostoja ja malleja.
Aloitamme muokkaamalla seuraavia määritystiedostoja ilmoitetulla tavalla:
1. /etc/ansible/playbooks/wp-dependencies/tasks/main.yml. Huomaa, että sisällytämme httpd: n, jos et ole seurannut tämän sarjan edellisten oppaiden ohella.
--- # 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 (toimitetaan tässä Pastebin-tiedostossa) seuraavasti ja tallenna se Ansible-ohjainkoneellesi (kuten yllä olevasta viimeisestä kopiodirektiivistä näet, ladasin sen pääkäyttäjän kotihakemistoon (/ root /wp-config-sample.php).
Tärkeää: Huomaa, että muuttujien DB_NAME, DB_USER ja DB_PASSWORD arvo on sama kuin /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. Uusille tietokantapalvelinasennuksille, joissa juurisalasana on tyhjä, kuten tässä tapauksessa, valitettavasti joudumme määrittämään käyttäjän juuren salasanan erikseen jokaisessa koneessa mysql_secure_installation-ohjelman avulla.
Sikäli kuin tiedän, ei ole käytettävissä olevaa kiertotapaa, jonka avulla voit asettaa juurisalasanan Ansible-palvelun kautta samassa vaiheessa, kun luot hallinnollisen tietokannan tilin WordPressille.
Varmista, että käytät samaa salasanaa kaikissa palvelimissa, ja kopioi sitten tunnistetiedot kansioon /root/.my.cnf (todellinen sijainti voi vaihdella tapauksessasi, mutta kaikissa tapauksissa sen on vastattava tehtävän src-parametrin arvoa Kopioi ~/.my.cnf solmuihin hakemistossa /etc/ansible/playbooks/wp-dependencies/tasks/main.yml).
Kyseisessä tiedostossa (katso yllä) oletamme, että pääkäyttäjän salasana on YourMariaDBRootPassword.
6. Seuraavaksi soittokirjamme (/etc/ansible/playbooks/playbook.yml) näyttää paljon järjestäytyneemmältä ja yksinkertaisemmalta kuin edellinen opetusohjelma:
# cat playbook.yml
- hosts: webservers roles: - wp-dependencies - wp-install-config
Lopuksi on aika suorittaa nämä tehtävät vetämällä pelikirjaamme:
# ansible-playbook playbook.yml
Tarkistetaan nyt, pääsimmekö WordPress-järjestelmänvalvojan sivulle solmun1 192.168.0.29 ja solmun2 192.168.0.30 IP-osoitteilla:
Voit tarkastella kahta viimeistä vaihetta seuraavassa kuvaruudussa:
Kuten näette, voit määrittää Ansible-sovelluksen avulla useita WordPress-asennuksia vain vähän tai vaivattomasti. Tämän jälkeen voit määrittää kunkin sivuston erikseen vastaavan järjestelmänvalvojan käyttöliittymän avulla.
Loppuhuomioita
Jos käytät toista jakelua WordPressin käyttöönottoon, pakettien nimi voi vaihdella, mutta se riippuu Apache-verkkopalvelimen, MariaDB-tietokantapalvelimen ja Python MySQL -moduulin asentamisesta. Jos näin on, etsi jakelun ohjelmistohallintajärjestelmästä tarkka asennettavan paketin nimi.
Yhteenveto
Tässä sarjassa olemme selittäneet, kuinka Ansible-ohjelmaa käytetään komentojen suorittamiseen ja monimutkaisten tehtävien suorittamiseen useissa Linux-koneissa samanaikaisesti.
Yksi tällaisista esimerkeistä on WordPressin asentaminen, kuten olemme käsittäneet tässä oppaassa. Olitpa järjestelmänvalvoja tai bloggaaja, toivon, että tämän opetusohjelman käsitteet ja esimerkit ovat hyödyllisiä.
Onnea ja älä epäröi pudottaa meille linjaa, jos tarvitset apua tai jos sinulla on kommentteja tai ehdotuksia!