LoginSignup
4
5

More than 3 years have passed since last update.

アプリケーション環境構築(Ansible)

Last updated at Posted at 2019-10-23

はじめに

Ansibleを使用してアプリケーション環境構築を行う際の手順を記述します
サンプルアプリケーションはgithubになります

前提事項

Ansibleセットアップ手順はREADMEを参照ください

Ansibleとは

Ansible(アンシブル)はレッドハットが開発するオープンソースの構成管理ツールです
PlaybookというYAML形式のテキストファイルに定型業務をタスクとして記述します。
それらをAnsibleが実行することで様々な処理を実現できます。
詳細はAnsibleドキュメントを参照ください

アプリケーション環境構築(Ansible)

アプリケーション環境構築イメージ

Ansibleを使用したアプリケーション環境構築イメージは以下のとおりです。

アプリケーション環境構築イメージ

Ansibleのディレクトリ構成

Ansibleのディレクトリ構成は以下のとおりです。
各ファイルはpypeach_playbookを参照ください

/ansible_playbook
│  app_server.yml        # サーバplaybook
│  inventory             # インベントリ
│  site.yml              # マスタplaybook
│
├─group_vars
│  └─app_server
│          server.yml    # サーバ共通変数
│
└─roles                  
    ├─account
    │  ├─tasks
    │  │      main.yml   # アカウント作成タスク
    │  └─vars
    │          main.yml  # アカウント作成変数
    │
    ├─apache              
    │  ├─tasks
    │  │      main.yml   # Apacheインストールタスク
    │  └─vars
    │          main.yml  # Apacheインストール変数
    │
    ├─jenkins              
    │  ├─tasks
    │  │      main.yml   # Jenkinsインストールタスク
    │  └─vars
    │          main.yml  # Jenkinsインストール変数
    │
    ├─mysql              
    │  ├─tasks
    │  │      main.yml   # MySQLインストールタスク
    │  └─vars
    │          main.yml  # MySQLインストール変数
    │
    └─python
        ├─tasks
        │      main.yml  # pythonインストールタスク
        └─vars
                main.yml # pythonインストール変数

サーバplaybook

サーバ接続先や実行タスク(roles)を定義します
app_server.yml

- hosts: app_server
  remote_user: "{{ remote_user_name }}"
  become: true
  roles:
    - account
    - python
    - mysql
    - apache
    - jenkins

各項目の説明は以下のとおり

項目 内容
hosts サーバ接続先を指定します
インベントリと値を合わせます
remote_user サーバ接続時のユーザを指定します
変数はgroup_varsディレクトリ内のサーバ共通変数に定義します
become suコマンドの実行を許可します
※pythonインストール時にスイッチユーザを行うために指定します
roles 実行するタスクを指定します

インベントリ

リモートサーバのホスト名やIPを定義します
inventory

app_server:
    hosts:
      192.168.33.11

各項目の説明は以下のとおり

項目 内容
app_server サーバ名を指定します
サーバplaybookと値を合わせます
hosts サーバ接続時のホスト名やIPを指定します

マスタplaybook

サーバplaybookを定義します。サーバに応じてroleを変える場合は複数のサーバplaybookを定義します。
site.yml

- import_playbook: app_server.yml

各項目の説明は以下のとおり

項目 内容
import_playbook インポートするサーバplaybookを指定します

サーバ共通変数

サーバplaybookで使用する変数を定義します。
group_vars内のディレクトリ名はサーバplaybookと合わせます
server.yml

各タスク実行

アプリケーション環境構築を行うためのタスクの詳細は以下を参照ください

項目 内容
アカウント作成 グループやユーザ追加等を行うます
Pythonインストール ユーザにPython及び各モジュールのインストールや設定を行います
MySQLインストール MySQLパッケージのインストールやユーザ・DB作成を行います
Apacheインストール Apacheインストールや設定変更を行います
Jenkinsインストール Jenkinsインストールや設定変更を行います

参考情報

4
5
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
4
5