Bii o ṣe le Ṣẹda Awọn imuṣiṣẹ ni igbakanna ni Wodupiresi ni Awọn olupin Lainos lọpọlọpọ Lilo Idahun - Apá 3


Ninu awọn nkan meji ti tẹlẹ ti jara Ansible yii, a ṣalaye bawo ni a ṣe le fi sori ẹrọ ati tunto Ansible lati ṣiṣe awọn ofin ati ṣe awọn iṣẹ ṣiṣe ti o nira ninu ọpọlọpọ awọn olupin latọna jijin nigbakanna.

Ninu ẹkọ lọwọlọwọ a yoo ṣalaye bi a ṣe le ṣeto WordPress ni awọn olupin latọna kanna:

node1: 192.168.0.29
node2: 192.168.0.30

ibiti a ti fi sii, ti muu ṣiṣẹ, ati ti bẹrẹ Apache (o ṣee ṣe o mọ nipa bayi idi ti a fi yan lati ṣiṣẹ pẹlu olupin wẹẹbu bi apẹẹrẹ akọkọ ninu ikẹkọ ikẹhin).

Mo gba ọ niyanju pupọ lati ka Apá 1 ati Apá 2 ṣaaju ki o to lọ siwaju ni ibere lati rii daju pe o faramọ pẹlu awọn imọran ti o ni nkan ṣe pẹlu Ansible.

Igbesẹ 1: Ifihan Awọn ipa ti o Ni ipa

Bi o ṣe bẹrẹ fifi awọn iṣẹ ṣiṣe siwaju ati siwaju si si awọn ere, Awọn iwe-akọọlẹ rẹ le di ohun ti o nira pupọ lati mu. Fun idi naa, ọna ti a ṣe iṣeduro ni awọn ipo wọnyẹn (ni otitọ, ni gbogbo awọn ọran) ni lati lo ilana itọsọna kan ti o ni awọn itọsọna fun ẹgbẹ kọọkan awọn iṣẹ-ṣiṣe ni awọn faili ọtọtọ.

Ọna yii n gba wa laaye lati tun lo awọn faili iṣeto ni awọn iṣẹ ọtọtọ siwaju si opopona. Olukuluku awọn faili wọnyi ṣalaye ohun ti a pe ni ilolupo eda abemi Ansible ni ipa kan.

Ninu ọran wa, a yoo ṣẹda awọn ipa meji. Ọkan ninu wọn (ti a pe ni awọn igbẹkẹle wp) ni ao lo lati fi sori ẹrọ awọn igbẹkẹle WordPress (PHP ati MariaDB - ko si ye lati fi Apache sori ẹrọ bi o ti fi sii tẹlẹ).

Ipa miiran (ti a npè ni wp-install-config) yoo pẹlu gbogbo awọn iṣẹ ṣiṣe pataki ti o ni nkan ṣe pẹlu fifi sori ẹrọ ati iṣeto ti Wodupiresi.

Igbesẹ 2: Ṣiṣẹda Awọn ipa to daju

Ansible wa pẹlu ohun elo ti a pe ni ansible-galaxy ti yoo ṣe iranlọwọ fun wa lati ṣẹda ilana itọsọna fun awọn ipa wa. A yoo ṣe eyi ni/ati be be lo/ansible/playbooks (eyiti a ṣẹda ni Apakan 2) ṣugbọn ni imọran o le ṣeto rẹ ni itọsọna miiran ti o ba fẹ.

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

Nigbamii jẹrisi awọn ipa ti a ṣẹda tuntun.

# ls -R /etc/ansible/playbooks

Ni aworan ti o wa loke a le rii pe ansible-galaxy ṣẹda awọn itọnisọna meji pẹlu orukọ kanna bi awọn ipa wa, ati awọn ipin-iṣẹ miiran (awọn aiyipada, awọn faili, awọn olutọju, meta, awọn iṣẹ-ṣiṣe, awọn awoṣe, ati vars) ati faili README.md kan ninu ọkọọkan wọn.

Ni afikun, faili YAML ti a npè ni main.yml ni a ṣẹda ninu gbogbo awọn ilana ti a ṣe akojọ tẹlẹ, pẹlu ayafi awọn faili ati awọn awoṣe.

A yoo bẹrẹ nipasẹ ṣiṣatunkọ awọn faili iṣeto atẹle bi a ti tọka:

1. /etc/ansible/playbooks/wp-dependencies/tasks/main.yml. Akiyesi pe a wa pẹlu httpd ni ọran ti o ko tẹle tẹle pẹlu awọn ẹkọ iṣaaju ti jara yii.

---
# 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 (ti a pese ni Pastebin yii) bi atẹle ki o fi pamọ si ẹrọ oludari Ansible rẹ (bi o ti le rii ninu itọsọna ẹda ti o kẹhin loke, Mo gba lati ayelujara si itọsọna ile ti superuser (/ root /wp-config- apẹẹrẹ.php).

Pataki: Jọwọ ṣe akiyesi pe iye fun awọn oniyipada DB_NAME, DB_USER, ati DB_PASSWORD jẹ kanna bii in /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. Fun awọn fifi sori ẹrọ olupin data tuntun nibiti ọrọ igbaniwọle gbongbo ṣofo, gẹgẹ bi ninu ọran yii, laanu a nilo lati ṣeto ọrọ igbaniwọle fun gbongbo olumulo ni ọkọọkan ninu gbogbo ẹrọ nipasẹ mysql_secure_installation.

Gẹgẹ bi Mo ti mọ, ko si iṣẹ-ṣiṣe ti o wa ti yoo gba ọ laaye lati ṣeto ọrọ igbaniwọle gbongbo nipasẹ Ansible ni igbesẹ kanna nibiti o ṣẹda akọọlẹ data iṣakoso fun Wodupiresi.

Rii daju pe o lo ọrọ igbaniwọle kanna ni gbogbo awọn ọmọ-ogun, lẹhinna daakọ awọn iwe-ẹri ni /root/.my.cnf (ipo gangan le yato ninu ọran rẹ, ṣugbọn ni gbogbo awọn iṣẹlẹ o nilo lati baamu iye ti paramita src fun iṣẹ naa Daakọ ~/.my.cnf si awọn apa ni /etc/ansible/playbooks/wp-dependencies/tasks/main.yml).

Ninu faili yẹn (wo loke) a ti gba pe ọrọ igbaniwọle fun gbongbo ni YourMariaDBRootPassword.

6. Nigbamii ti, iwe orin wa (/etc/ansible/playbooks/playbook.yml) yoo wa ni eto pupọ diẹ sii ati rọrun nigbati a bawe si ikẹkọ ti tẹlẹ:

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

Lakotan, o to akoko lati ṣiṣẹ awọn iṣẹ wọnyi nipa pipepe iwe-idaraya wa:

# ansible-playbook playbook.yml

Bayi jẹ ki a ṣayẹwo ti a ba le wọle si oju-iwe Admin WordPress ni lilo awọn adirẹsi IP ti node1 192.168.0.29 ati node2 192.168.0.30:

O le wo awọn igbesẹ meji to kẹhin ni iboju iboju atẹle:

Bi o ti le rii, o le ṣeto ọpọlọpọ awọn fifi sori ẹrọ Wodupiresi pẹlu kekere si ko si igbiyanju nipa lilo Ansible. Lẹhinna o le lo oludari olumulo olumulo Admin lati tunto aaye kọọkan lọtọ.

Ik ero

Ti o ba nlo pinpin miiran lati fi ranṣẹ Wodupiresi, orukọ awọn idii le yatọ, ṣugbọn o wa ni fifi sori ẹrọ olupin ayelujara Apache, olupin data MariaDB, ati module Python MySQL. Ti o ba jẹ ọran naa, lo eto iṣakoso sọfitiwia pinpin rẹ lati wa orukọ pipe package ti o nilo lati fi sii.

Akopọ

Ninu jara yii a ti ṣalaye bawo ni a ṣe le lo Ansible lati ṣiṣe awọn aṣẹ ati ṣiṣe awọn iṣẹ ṣiṣe ti o nira ninu ọpọlọpọ awọn ẹrọ Lainos nigbakanna.

Ọkan ninu iru awọn apẹẹrẹ ni siseto WordPress, bi a ti ṣe ijiroro ninu itọsọna yii. Boya o jẹ olutọju eto tabi Blogger kan, Mo nireti pe o ti rii awọn imọran ati awọn apẹẹrẹ ninu ẹkọ yii wulo.

Oriire ti o dara julọ ati ma ṣe ṣiyemeji lati ju ila wa silẹ ti o ba nilo iranlọwọ tabi ni awọn asọye tabi awọn didaba eyikeyi!