ansible はじめてみました
TRANSCRIPT
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
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(使用例)