4
5

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)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?