Ansible はじめてみました
2015/6/8
Takeshi Kuramochi
@tsarah0822
本日のゴール
 Ansible を知る
 Ansible 導入のきっかけを掴む
Agenda
 What’s Ansible?
 Design Principles
 How to use Ansible
 Ansible for Enterprise
★Start Hands On
Let me introduce myself
 倉持健史(くらもち たけし)
 現職
 TIS OSS推進室 (TME のような)
 職歴
 NetApp.KK
 OpenStack Manila / Hadoop Solution
 HA Clusterware Sup/Edu/Dev/Pre
 SPARC Solaris , Vine Linux
 R
楽をしたい!
Ansible is a radically simple
IT automation engine that
automates cloud
provisioning, configuration
management, application
deployment, intra-service
orchestration, and many
other IT needs.
What’s Ansible?
 サーバ構築の自動化ツール
App Deployment
Configuration Management
Orchestration
Ansible
楽をさせてくれる簡単な自動化エンジン
Example
 システム自動構築
 運用の簡便化・効率化
DevOps made Simple.
Deploy apps. Manage
systems. Crush complexity.
Ansible is a powerful
automation tool that you
can learn quickly.
Ansible Design Principles
Simple
 学習コストが低い
 既知知識の流用
 スグに導入
 スグに達人
Agentless
 構成される側にエージェントが不要
 SSH 接続
 Python は必要
Ansible
SSH
構成される側
Powerful
 Batteries included
 冪等性(べきとうせい)担保
Inventory
Playbook
YAML
Module
Role
Galaxy
How to use Ansible
 必要なマシン
 Ansible がインストールされているマシン
 必要なファイル
 Inventory (インベントリ)
 Playbook (プレイブック)
Inventory : ansible_hosts
Playbook : playbook.yml
Inventory
「何(対象物)に?」を示すファイル
192.168.2.200
192.168.2.200
192.168.3.200
[webservers]
192.168.2.200
192.168.3.200
http://docs.ansible.com/intro_inventory.html
Playbook
「何を?(最終的にどんな状態に?)」を書いたファイル
(YAMLという決まったフォーマット)
---
- hosts: 192.168.2.200
remote_user: root
tasks:
- name: install apache at the latest version
yum: pkg=httpd state=latest
- name: start apache
service: name=httpd state=started enabled=yes
http://docs.ansible.com/playbooks_intro.html
文章で書くと、「192.168.2.200 に対して、スーパーユーザで yum を使って httpd をイ
ンストールし、 起動(次回再起動時も起動するように同時に設定)」
Run
ansible-playbook コマンド実行
Ansible 構成される側
SSH
$ ansible-playbook -i ansible_hosts playbook.yml
PLAY [192.168.2.200] **********************************************************
GATHERING FACTS ***************************************************************
ok: [192.168.2.20]
:
:
PLAY RECAP ********************************************************************
192.168.2.20 : ok=2 changed=2 unreachable=0 failed=0
# yum install httpd
# service httpd start
# chkconfig httpd on OR
systemctl enabled httpd
More …
 台数や処理数が増えたら・・・
 Playbook ファイルの分割やパッケージを使用
(include , role)
 標準で出来ないことがあったら・・・
 自分で作る (module)
 巨人の肩の上に立つ
Ansible Galaxy
I think any customer is
not only ISV and IHV will
expect for this.
Ansible for Enterprise
 物理サーバ、仮想サーバ
SDX
Amazon Web Service
Docker
Google
Microsoft Azure
OpenStack
CloudStack
VMware
The comparison of Chef and Ansible
 Ruby or Python
 Ansible は Agentless
 Ansible は Orchestration もこなす!
 Chef → Ansible 、 Ansible → Chef ?
 実績・ノウハウ Ansible < Chef(後発が故に・・・)
Google Trend …
Summary
Ansible で楽をしよう!
 Simple , Agentless , Powerful
 たった2つだけで自動化・オーケストレーション
 Enterprise への十分な期待!
Reference
 ドキュメント
 http://docs.ansible.com
 採用事例・WhitePaper
 http://www.ansible.com/resources
 事前準備
 Lesson 1
 Lesson 2
http://goo.gl/5kZN8k
Goal
(blog)
VM
Ubuntu14.04
(host)
Ansible Target
AP
Web
DB
PHP
Apache
MariaDB
Hands On Point
 Playbook(YAML で書く)
 直感的
 順番に記述
 処理単位は Module
Modules
 Module Index
 ほしい物を探す
http://docs.ansible.com/
Modules(つづき)
 Synopsis(概要)
 Option(オプション)
 Note(注意点)
 Example(使用例)

Ansible はじめてみました