0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ansible 初心者がplaybook~roleを学ぶ ④ (wordpress環境構築)-単体playbook編-

Last updated at Posted at 2020-10-17

wordpress構築用のAnsible playbookの作成を行います。

wordpress環境
-動作要件-
・PHP バージョン7.4以上
・MariaDB バージョン10.1以上
参考wordpress公式:https://ja.wordpress.org/download/

-playbook要件-
・PHP,MariaDBのバージョン指定が出来るようにして、流用性の配慮。
・ansibleのチェックモード実行(--check)でエラーによりTask停止しないように配慮。

-サーバ構成-
・webサーバ (IP address:192.168.16.12)
・dbサーバ (IP address:192.168.16.13)

#playbookを起こす前に、手動構築手順を作成。
#####web server構築
① epel,phpのrepositoryをインストール

yum install epel-release http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y

②ahapcheのインストール

yum install httpd --enablerepo=epel -y    

③wordpress パッケージのダウンロード

wget http://wordpress.org/latest.tar.gz -P /tmp/

④wordpress パッケージの解凍(解凍先指定)

tar -zxvf /tmp/latest.tar.gz -C /var/www/html/

⑤wordpressディレクトリ(配下含む)のオーナー、グループをapacheへ変更

chown -R apache:apache /var/www/html/wordpress

⑥phpインストール(バージョン7.4指定)

yum install php php-cli php-pdo php-fpm php-json php-mysqlnd --enablerepo remi-php74 -y

⑦ apache起動、有効化

systemctl restart httpd
systemctl enable httpd

#####DB server構築
①mariadb repository(version10.1用)をダウンロード

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.1

②mariadb-server,MySQL-pythonをインストール

yum install mariadb-server MySQL-python -y

③mariadb起動

systemctl start mariadb

④mariadb有効化

systemctl enable mariadb

⑤DB:wordpress作成

mysqladmin create wordpress

⑥DB:wordpressにユーザ:web_user作成(接続元:webサーバ:192.168.16.12、パスワード:password)

mysql -e "grant all privileges on wordpress.* to web_user@192.168.16.12 identified by 'password'"

#####wordpressのsetup ※インストール手順ではない、参考として記す。
http://192.168.16.13/wordpress/wp-admin/install.php
image.png

## ansible playbook作成(web,db手動構築手順を元に作成する)

playbookの主な記述方法 ※大まかな記述ルール

---
- name: {Play name}
  hosts: {target server}   … ターゲットサーバ(ターゲットグループ)
  become: yes        … sudo有効化(ターゲットサーバでroot権限を持った変更が必要な場合、記述)
  tasks:
    - name: {task name}  … task 名を付ける、実行時にどのタスクが動いているか確認する目印となる。
      {modle}:       …使用したいモジュールを記述ルールに従い記述。

#####playbookで利用したansibleモジュール

modlue name 概要
yum yumを用いたインストール
get_url wget変わりにpkg DL 
stat ファイル情報取得
shell Linxコマンド実行、commandと違ってパイプ等が使える
unarchive 圧縮ファイル解凍
file ファイル操作(権限変更など)
service サービス操作
mysql_db DB作成
mysql_user DBユーザ作成

手動手順を元に
要件であるチェックモードでTask停止しないよう配慮(statとwhenによる条件分岐)したplaybookを作成。
git habに公開しています。

 https://github.com/hiro0413ike/ansible_study/blob/main/ansible/web.yml
 https://github.com/hiro0413ike/ansible_study/blob/main/ansible/db.yml

次回で、本当の目的であったroles理解をすすめます。
-追伸- <version指定インストール手順作成は、なんだかんだで苦労しました。>
####次回Link>>Ansible 初心者がplaybook~roleを学ぶ ⑤ (wordpress環境構築)-roles(ベストプラクティス)編-

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?