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!