Vagrant+Ansibleで検証環境を簡単構築

Preview:

Citation preview

Vagrant+Ansibleで検証環境を簡単構築

社内勉強会資料

2015/06/25

All Rights Reserved Copyright Thirdware Inc.2015 1

・日々の業務で必要な検証環境を簡単に作りたい

・Vagrant + Ansibleで簡単に作ろう

・PC持込でハンズオンでやろう

本日の勉強会

自動でBaculaサーバを

構築する

All Rights Reserved Copyright Thirdware Inc.2015 2

Virtualboxの技術を利用して仮想サーバを作成できる。

プラグインを利用することによりローカル以外にもAWS、Softlayerなどにサーバ

を構築することも可能。

今日使用するVagrantのバージョンは1.7.2

Vagrantって?

All Rights Reserved Copyright Thirdware Inc.2015 3

自動でサーバ構築できるプロビジョニングツールです。

Chef、Puppetなどと同じですがAnsibleは管理するサーバ(構築するサ

ーバ)にクライアントを入れる必要がなくPythonが入っていれば動く点が

大きく違います。

Pythonは大抵のLinuxサーバにはデフォルトで入っています。

また最近はAnsibleと同様にクライアントいらずのツールでItamaeという

ツールもあり盛り上がっているらしいです。

今日使用するAnsibleのバージョンは1.8.2

Ansibleって?

All Rights Reserved Copyright Thirdware Inc.2015 4

用意するもの

・ノートPC

・やる気

・業務後だけど最後まで寝ない気構え

さあ、はじめましょう

All Rights Reserved Copyright Thirdware Inc.2015 5

今日使用するVagrant、Ansibleのファイルを以下からお手持ちのPCに

ダウンロードしてください。

https://github.com/ksawada1979/Bacula-ansible-playbook.git

ファイルをダウンロードしたら以下のコマンドで移動します。

ファイルダウンロード

# cd Bacula-ansible-playbook

あとは3STEPで構築!!

All Rights Reserved Copyright Thirdware Inc.2015 6

Vagrantを実行します。

実行前にviで「Vagrantfile」を修正してください。

IPアドレス部分を環境に合わせて変更してください。

修正したら以下のコマンドで実行します。

Vagrant実行(STEP1)

# vagrant up bacula

All Rights Reserved Copyright Thirdware Inc.2015 7

先ほどVagrantで起動したbaculaサーバに対して共通鍵交換を実行します。

これはAnsbileを実行するために必須となります。

以下のコマンドで実行します。

共通鍵交換(STEP2)

# ssh-copy-id -i /root/.ssh/id_rsa.pub vagrant@<サーバIPアドレス>

あらかじめ共通鍵を作成していない場合は以下のコマンド等で作成してください。

# ssh-keygen –t rsa

All Rights Reserved Copyright Thirdware Inc.2015 8

Ansibleを実行します。

実行前にviで「ansible_hosts」と「role/bacula/vars/main.yml」を修正

してください。

IPアドレス部分を環境に合わせて変更してください。

修正したら以下のコマンドで実行します。

Ansible実行(STEP3)

# ansible-playbook -i ansible_hosts bacula.yml

All Rights Reserved Copyright Thirdware Inc.2015 9

Baculaサーバが構築できたことを確認します。

まずサーバにログインします。

確認しましょう

# vagrant ssh bacula

ログインしたらrootユーザになりbconsoleを実行します。

$ sudo –s# bconsole*

コマンドプロンプトが「*」となることを確認します。

All Rights Reserved Copyright Thirdware Inc.2015 10

次にラベルを作成します。

確認しましょう

* label

任意の名前で問題ありません。

* Run

(1を選択しyesを入力)*

次にバックアップJOBを実行します。

実行した後に「status」コマンドでJOBが終了していることを確認します。

All Rights Reserved Copyright Thirdware Inc.2015 11

Vagrant基本コマンドコマンド 実行内容

vagrant up 仮想サーバ起動

vagrant ssh <ホスト名> 仮想サーバにログイン

vagrant destroy 仮想サーバ破棄

vagrant status 仮想サーバ状況確認

vagrant halt 仮想サーバ停止

vagrant box list Boxリスト表示

vagrant init vagrant初期化

全てVagrantfileと同じ階層にいる状態で実行します。

All Rights Reserved Copyright Thirdware Inc.2015 12

今回はbacula.ymlに実行内容を記載しています。

中身は非常にシンプルでntp、timezone、bacula、rebootというroleを各自

呼び出して使っています。

role化して部品化することにより汎用性が高まります。

Ansible基礎

All Rights Reserved Copyright Thirdware Inc.2015 13

Baculaのroleは以下の役割があります。

task

インストールするパッケージ、起動するサービス

ファイルのコピーなどを実行します。

templete

修正済みの設定ファイルなどをtempleteとして使用します。

vars

role内で使用できる変数を宣言します。

Ansible基礎

All Rights Reserved Copyright Thirdware Inc.2015 14

・Bitbacketで設定ファイルを共有したい(DRBD,Bacula)

・共有できれば社内ならどこからでも数分で検証環境を構築できる

・Ansibleに興味を持った方role作成にご協力をお願いします

今後の展開