More Related Content Similar to What is an Ansible? (20) More from Shunsaku Kudo (15) What is an Ansible?8. インストール (PIP)
Mac OS X, BSDs
$ sudo easy_install pip
Python 2.7.9 and later include pip by default
$ sudo pip install ansible
アンシブルってなんだろう? 8
10. インストール (APT)
Ubuntu
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
アンシブルってなんだろう? 10
15. 使い⽅方 (ANSIBLE)
Synopsis:
$ ansible <host-pattern> [-f forks] [-m module_name] [-a args]
example:
$ ansible all -m ping
$ ansible webserver* -m ping
$ ansible webservers:dbservers -m ping
$ ansible webservers:\!webserver01 -m ping
アンシブルってなんだろう? 15
17. プレイブック
アンシブルってなんだろう? 17
モジュール
単⼀一の機能が実装された処理理の最⼩小単位
(Pythonで実装された)標準モジュールが⽤用意されています
プレイブックからモジュールを組み合わせて使う
モジュールを⾃自作することも可能
PythonやShellScriptなどでも作成可能
YAMLファイル
プレイブック書式はYAMLファイルフォーマット(サンプルにて後述します)
設定のためのシンプルな ’plays’ の指定が可能
使いたいモジュールを組み合わせて対象に実⾏行行したい処理理を記述します
21. 実⾏行行例例 (ANSIBLE-PLAYBOOK)
$ ansible-playbook mysql.yml
PLAY [dbservers] *********************************************************
GATHERING FACTS *******************************************************
ok: [192.168.100.101]
TASK: [install mysql] *******************************************************
changed: [192.168.100.101]
PLAY RECAP **************************************************************
192.168.100.101 : ok=2 changed=1 unreachable=0 failed=0
アンシブルってなんだろう? 21
22. プレイブックサンプル②
---
- hosts: dbservers
user: root
tasks:
- name: install mysql
yum: name=mysql state=installed
- name: install mysql-server
yum: name=mysql-server state=installed
- name: install mysql-devel
yum: name=mysql-devel state=installed
アンシブルってなんだろう? 22
23. プレイブックサンプル③
---
- hosts: dbservers
user: root
tasks:
- name: install mysql packages
yum: name=$item state=installed
with_items:
- mysql
- mysql-server
- mysql-devel
アンシブルってなんだろう? 23
27. モジュールインデックス
Cloud Modules
Clustering Modules
Commands Modules
Database Modules
Files Modules
Inventory Modules
Messaging Modules
アンシブルってなんだろう? 27
Monitoring Modules
Network Modules
Notification Modules
Packaging Modules
Source Control Modules
System Modules
Utilities Modules
Web Infrastructure Modules
Windows Modules
28. 主要なモジュール
copy
ファイルのリモートコピーをします。
file
リモートファイルの設定を変更更できます。パーミッション変更更、シンボリックリンク作成、
ディレクトリの設定や削除、等。
yum
yumパッケージのインストール、アップグレード、削除ができます。
template
埋め込み変数を置換してリモートファイルに反映できます。
synchronize
ディレクトリの同期を⾏行行うモジュールです。内部ではrsyncが使われている様⼦子。
アンシブルってなんだろう? 28
30. プレイブックサンプル④
---
- name: be sure mysql-server is installed
yum: name={{ item }} state=installed
with_items:
- mysql-server
- MySQL-python
tags: mysqld
- name: be sure mysqld is running and
enabled
service: name=mysqld state=running
enabled=yes
tags: mysqld
アンシブルってなんだろう? 30
- name: Create database
mysql_db: db={{ dbname }} state=present
encoding=utf8
tags: mysqld
- name: Create database user
mysql_user: >
name={{ dbuser }}
password="{{ dbpassword }}"
priv={{ dbname }}.*:ALL
state=present
tags: mysqld
43. アンシブルのユーザー
Ansible is used by Atlassian, Twitter, OneKingsLane, Evernote, TrunkClub, edX,
hootsuite, GoPro, NewsCred, and Care.com, among others. (from wikipedia)
アンシブルってなんだろう? 43
44. アンシブルから想うこと
軽量量プログラミング⾔言語の優位性
Lightweight Language, Python, Perl, PHP, Ruby
スクリプト⾔言語が故の特徴による貢献が⼤大きいと実感
コンパイル形式を採⽤用するプログラミング⾔言語との⼤大きな性質の違い
ドメイン固有⾔言語は無ければそれに越したことはない
DSL (Domain Specific Language)
局所的な問題解決に特化したものであり、様々に有効であることは違いない
ですが、幾つも固有のDSLが登場すると覚えきれないし逆に⼿手間になる
簡易易なデータフォーマットの隆盛
YAML と JSON
構成情報の書式はなんでもかんでもJSONになりつつある
アンシブルってなんだろう? 44
47. アンシブルの語源
ランチボックス型の超⾼高速通信機器
An ansible is a fictional machine capable of instantaneous or
superluminal communication.
S.F. ハイニッシュ・サイクルシリーズに登場
アーシュラ・クローバー・ル=グウィン著作
Ursula K. Le Guin in her 1966 novel Rocannon‘s World
1st of Hainish Cycle series
Welcome to Ansible Galaxy
https://galaxy.ansible.com/
アンシブルってなんだろう? 47