Otu esi eme ka ntinye akwụkwọ WordPress n'otu oge na sava Linux dị iche iche na-eji ike - Nkebi 3


N'ime edemede abụọ gara aga nke usoro a, anyị kọwara ka esi wụnye na hazie ike ịme iwu ma rụọ ọrụ dị mgbagwoju anya n'ọtụtụ sava dịpụrụ adịpụ n'otu oge.

N'ime nkuzi ugbu a, anyị ga-akọwa otu esi edozi WordPress na otu sava dịpụrụ adịpụ:

node1: 192.168.0.29
node2: 192.168.0.30

ebe anyị rụnyere, rụọ ọrụ, ma malite Apache (ma eleghị anya ị maara ugbu a ihe kpatara anyị ji họrọ ịrụ ọrụ na sava weebụ dị ka ihe atụ mbụ na nkuzi ikpeazụ).

Ana m agba gị ume ka ị gụọ akụkụ 1 na akụkụ 2 tupu ịga n'ihu iji jide n'aka na ị maara nke ọma echiche ndị metụtara ike.

Nzọụkwụ 1: Ewebata Ọrụ Ndị Kwesịrị Ekwesị

Ka ị na-amalite ịgbakwụnye ọtụtụ ọrụ na egwuregwu, akwụkwọ egwuregwu gị nwere ike na-esiwanye ike ijikwa ya. N'ihi nke ahụ, ụzọ akwadoro n'ọnọdụ ndị ahụ (n'ezie, n'ọnọdụ niile) bụ iji usoro ndekọ aha nwere ntuziaka maka otu ọrụ ọ bụla na faịlụ dị iche iche.

Ụzọ a na-enye anyị ohere iji faịlụ nhazi ndị a na-arụ ọrụ dị iche iche na-aga n'ihu n'okporo ụzọ. Nke ọ bụla n'ime faịlụ ndị a na-akọwapụta ihe a na-akpọ na gburugburu ebe obibi nwere ike ịbụ ọrụ.

N'ọnọdụ anyị, anyị ga-emepụta ọrụ abụọ. Otu n'ime ha (nke a na-akpọ wp-dependencies) ga-eji wụnye ndabere WordPress (PHP na MariaDB - ọ dịghị mkpa ịwụnye Apache dị ka etinyere ya).

Ọrụ ọzọ (nke aha ya bụ wp-install-config) ga-agụnye ọrụ niile dị mkpa metụtara ntinye na nhazi nke WordPress.

Nzọụkwụ 2: Ịmepụta Ọrụ Ndị Kwesịrị Ekwesị

Ansible na-abịa na ngwa a na-akpọ ansible-galaxy nke ga-enyere anyị aka ịmepụta ndekọ aha maka ọrụ anyị. Anyị ga-eme nke a na /etc/ansible/playbooks (nke anyị kere na Nkebi 2) mana na tiori ị nwere ike ịtọ ya na ndekọ ọzọ ma ọ bụrụ na ịchọrọ.

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

Ọzọ na-akwado ọrụ ndị emepụtara ọhụrụ.

# ls -R /etc/ansible/playbooks

Na onyonyo a dị n'elu, anyị nwere ike ịhụ na galaxy nwere ike mepụta akwụkwọ ndekọ aha abụọ nwere otu aha dị ka ọrụ anyị, yana subdirectories ndị ọzọ (ndabara, faịlụ, njikwa, meta, ọrụ, ndebiri, na vars) yana faịlụ README.md n'ime nke ọ bụla. ha.

Na mgbakwunye, e mepụtara faịlụ YAML aha ya bụ main.yml n'ime akwụkwọ ndekọ aha niile edepụtara na mbụ, ewezuga faịlụ na ndebiri.

Anyị ga-amalite site na dezie faịlụ nhazi ndị a dịka egosiri:

1. /etc/ansible/playbooks/wp-dependencies/tasks/main.yml. Rịba ama na anyị na-agụnye httpd ma ọ bụrụ na ị sobeghị na nkuzi ndị gara aga nke usoro a.

---
# 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 (nke enyere na Pastebin a) dị ka ndị a ma chekwaa ya na igwe njikwa ike gị (dịka ị nwere ike ịhụ na ntuziaka ikpeazụ n'elu, ebudatara m ya na ndekọ ụlọ nke superuser (/ mgbọrọgwụ). /wp-config-sample.php).

Ihe dị mkpa: Biko mara na uru maka mgbanwe DB_NAME, DB_USER, na DB_PASSWORD bụ otu na /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. Maka nrụnye ihe nkesa nchekwa data ọhụrụ ebe paswọọdụ mgbọrọgwụ adịghị, dị ka na nke a, ọ dị mwute ikwu na anyị kwesịrị ịtọ paswọọdụ maka mgbọrọgwụ onye ọrụ n'otu n'otu na igwe ọ bụla site na mysql_secure_installation.

Dị ka m maara, ọ dịghị ihe dịnụ workaround nke ga-enye gị ohere ịtọ ntọala paswọọdụ site na ike n'otu nzọụkwụ ebe ị na-emepụta na nhazi nchekwa data akaụntụ maka WordPress.

Jide n'aka na ị na-eji otu paswọọdụ ahụ na ndị ọbịa niile, wee detuo nzere na /root/.my.cnf (ebe ahụ n'ezie nwere ike ịdị iche na nke gị, mana n'ọnọdụ ọ bụla ọ ga-adaba uru nke paramita src maka ọrụ ahụ. Detuo ~/.my.cnf na nodes na /etc/ansible/playbooks/wp-dependencies/tasks/main.yml).

Na faịlụ ahụ (lee n'elu) anyị echerela na paswọọdụ maka mgbọrọgwụ bụ YourMariaDBRootPassword.

6. Ọzọ, anyị playbook (/etc/ansible/playbooks/playbook.yml) ga-ele anya ọtụtụ ihe ndị ọzọ ahaziri na mfe ma e jiri ya tụnyere gara aga nkuzi:

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

N'ikpeazụ, ọ bụ oge iji rụọ ọrụ ndị a site n'ịkpọku akwụkwọ egwuregwu anyị:

# ansible-playbook playbook.yml

Ugbu a, ka anyị lelee ma anyị nwere ike ịnweta ibe Admin WordPress site na iji adreesị IP nke node1 192.168.0.29 na node2 192.168.0.30:

Ị nwere ike ịlele nzọụkwụ abụọ ikpeazụ na nseta ihuenyo na-esonụ:

Dị ka ị pụrụ ịhụ, ị nwere ike melite otutu WordPress nrụnye na-enweghị mgbalị ọ bụla na-eji ike. Mgbe ahụ, ị nwere ike iji interface onye ọrụ Admin dị iche iche hazie saịtị ọ bụla iche iche.

Ntụle ikpeazụ

Ọ bụrụ na ị na-eji nkesa ọzọ na-ebuga WordPress, aha ngwugwu nwere ike ịdị iche, mana ọ na-agbadata ịwụnye sava weebụ Apache, sava nchekwa data MariaDB, yana Python MySQL modul. Ọ bụrụ otu ahụ, jiri sistemụ njikwa ngwanrọ nkesa gị chọọ aha ngwugwu ịchọrọ ịwụnye.

Nchịkọta

N'usoro isiokwu a, anyị akọwala otu esi eji ike na-agba ọsọ iwu ma rụọ ọrụ mgbagwoju anya n'ọtụtụ igwe Linux n'otu oge.

Otu n'ime ihe atụ ndị dị otú ahụ bụ ịmepụta WordPress, dịka anyị tụlere na ntuziaka a. Ma ị bụ onye nchịkwa sistemụ ma ọ bụ onye na-ede blọgụ, enwere m olileanya na ịchọtala echiche na ihe atụ na nkuzi a bara uru.

Kachasị mma ma egbula oge ịhapụ anyị ahịrị ma ọ bụrụ na ịchọrọ enyemaka ma ọ bụ nwee nkwupụta ma ọ bụ aro ọ bụla!