第一回ということで、このブログについて。
このブログを動かしているサーバは自宅のサーバで動かしています。
サーバの構築には最近主流となってきたAnsibleを用いています。
プロビジョニングツールといえば、他に有名所だとPuppetやChefがあります。
Chef経験もあるのですが、Ansibleのほうが結構さっぱりしていたので、
Ansibleに乗り換えました。(Puppetは使ったことないです)
作ったものはgit-hubに公開しています。
https://github.com/poppyhi/wordpress_ansible
Chefだと構築する際の処理を記載したものはレシピと呼びますが、ansibleだとPlaybookと言います。
Playbookを実行するコマンドは以下
ansible-playbook -i hosts site.yml
-i オプション:hostsファイルを指定する。
hostsファイル:処理を実行するサーバのIP情報等を記載する。
site.yml :処理を実行する内容を記載する。
今回は各ファイルの説明等を記載します。
- [hostsファイル]
[blog]
192.168.1.1
構築対象のサーバを指す名前と、そのサーバに割り振られているIPを記載する
- [site.yml]
---
- name: blog role
hosts: blog
remote_user: ansible
sudo: yes
roles:
- blog_role
'name:' 処理の名称。何でも良いが、わかりやすいものが良い。
'hosts:' [hostsファイル]に記載されているサーバを指定
'remote_user:' 構築対象のサーバ上のどのユーザで処理を実行するか指定
'sudo:' sudoで処理を行うか指定
'roles:' Ansibleはroleでサーバの役割をひとまとめにする。どのroleを実行するか指定。
rolesディレクトリ配下のディレクトリ名の処理を実行する。今回はblog_roleという名前のディレクトリが存在する。
- group_vars/all の説明
構築対象のサーバに応じて、設定値変えたりとかしたいときに利用。
変数とその値を指定。変数はtemplateの中のファイルで扱えたり、tasks上で使用したりできる。
このファイルを見れば、あとからサーバの設定値を確認することもできる。 -
roles/blog_role/ の説明
tasks: 処理内容を記載。
handlers: tasksで実行中の処理から呼び出されるもの。主にサービスの再起動等はここに記載。
templates: 設定ファイルとかのテンプレートを置く。 -
roles/blog_role/tasks/ の説明
main.yml: 最初に読み込まれるファイル。タスク一覧を記載したりする。
configure_db.yml: 'main.yml'から呼び出される。dbの構築に関係する処理が書かれている。
configure_wordpress.yml: 'main.yml'から呼び出される。wordpressの構築に関係する処理が書かれている。
次回は各ファイルの中身を説明します。