SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Deep Dive into Modules
JULY TECH FESTA 2015 1
whoami
齊藤 秀喜(さいとう ひでき) / TwitterID: @saito_hideki
日本OpenStackユーザ会
株式会社インターネットイニシアティブ
著書
OpenStackクラウドインテグレーション
ISBN: 9784798141251
2
Agenda
• 本日のテーマ
• Ansibleとは
• モジュールの仕組み
• モジュールを開発する
3
トピック
★ 対象とするもの
• Ansibleの簡単な紹介
• Ansibleの仕組みの中核であるモジュールについての解説
• モジュールの作成・テスト方法
★ 対象外とするもの
• Ansibleそのもの
• モジュール以外の構成要素
4
本日のテーマ
Ansibleが行うさまざまな仕事を実現しているのがモ
ジュールです。
本セッションでは、このモジュールに焦点をあてて、
その構造や開発方法について、少し掘り下げて紹介し
ます。
5
Ansibleとは
6
Configuration
Management Tool
Ansibleは、シンプルで使い勝手の良いCMTです
オペレーションの自動化 システムの構成管理
7
Ansibleとは
★ 何をしてくれるのか?
• システムの構成管理を比較的容易に実現できる
• システムの設定やテストなどのオペレーションを自動化できる
★ 利点
• エージェントレス
• 操作対象ノードの増減など環境変化にも柔軟に対応可能
• シンプルな構成ゆえに拡張性が高い
• デフォルトで多くの操作モジュールが付属している(BATTERIES INCLUDED)
• AWSやOpenStackなどのクラウド基盤管理システムとの親和性が高い
• ドキュメントが充実している
★ 欠点
• リリース頻度が高く落ち着かない
• Windows対応が弱い
• スケールさせるには工夫が必要
8
6つの構成要素
本セッションで関係するのは5つ
1. コマンドラインインターフェイス
2. 設定ファイル
3. インベントリ/ダイナミックインベントリ
4. モジュール
5. プラグイン
6. Playbook
9
BATTERIES
INCLUDED
10
モジュールの定義
モジュールは、ansibleコマンドやansible-playbookコマン
ドから利用されるプログラムで、その役割は、大きく以下
の2つです。
Ansibleには標準で数多くのモジュールが付属しています。
1. 対象ノードの情報を収集する(gathering)
他のモジュールから再利用する目的で、操作対象ノードの情報
を取得する
2. 対象ノードを操作する(do something)
設定ファイルの配置や、パッケージのインストール、システム
の再起動などのさまざまな操作を行う
11
実行に必要な要素は3つ
1. ansibleコマンド
2. インベントリファイル
3. モジュール
[書式]
ansible <ホストパターン> -i <インベントリファイル> -m <モジュール>
[実行例]
$ ansible web -i ansible_hosts -m setup
$ ansible 192.168.0.1 -i ansible_hosts -m hostname -a name=hogehoge -u vagrant -k -s
12
ansibleコマンドの動き
1.インベントリ内で、ホストパターンにマッチするノー
ドをリストアップする => ターゲットノード
2.ターゲットノードに対してモジュールを適用する
[localhost]
127.0.0.1 ansible_connection=local
[test]
192.168.0.1 ansible_connection=ssh
192.168.0.2 ansible_connection=ssh
192.168.0.3 ansible_connection=ssh
[web]
web0[0:3] ansible_connection=ssh
インベントリファイル
[localhost]
127.0.0.1 ansible_connection=local
[test]
192.168.0.1 ansible_connection=ssh
192.168.0.2 ansible_connection=ssh
192.168.0.3 ansible_connection=ssh
[web]
web0[0:3] ansible_connection=ssh
ホストパターン=> web
webグループにマッチ
13
対象ノードの情報を収集する
[例] 対象ホストの情報を収集する
$ ansible localhost -i ansible_hosts -m setup
127.0.0.1 | success >> {
"ansible_facts": {
"ansible_all_ipv4_addresses": [ …(中略)… ],
"ansible_all_ipv6_addresses": [ …(中略)… ],
"ansible_architecture": “x86_64",
…(中略)…
},
"module_setup": true
},
"changed": false
}
収集したホストの情報は、ansible_*変数に代入される。
Playbookでは、この変数を他のモジュールから再利用可能。
14
対象ノードを操作する
[例] ホスト名を変更(web00->foo)する
$ ansible web00 -i ansible_hosts -m hostname 
-a name=foo -u vagrant -k -s
SSH password: ********
web00 | success >> {
"changed": true,
"name": "foo"
}
ホスト名が変更された場合はtrue
変更されなかった場合はfalse
現在のホスト名は”foo”
どのような実行結果を返すのかは、モジュール
の作り方しだい。
15
モジュールの仕組み
16
モジュールの実行
Ansibleが標準提供するCoreやExtrasモジュールはPythonで
記述されています。
これらのモジュールを利用した構成管理の流れは以下の通り
です。
モジュール
実行可能
プログラム
実行
掃除
変換 転送
コントロールノード ターゲットノード
17
デモ
2台のホストをAnsibleから操作してみます。
1. setupモジュールによる情報収集
$ ansible members -i ansible_hosts -m setup
2. commandモジュールによる任意のコマンド実行
$ ansible members -i ansible_hosts -m command -a ‘uname -a’
3. hostnameモジュールによるホスト名の変更
$ ansible members -i ansible_hosts -m hostname -a ‘name=foo’ -s
18
本題:モジュールを開発する
19
モジュールを書いてみる
モジュールの働きを理解するために、現在の時刻を取得する
timetestモジュールを書いて実行してみましょう。
#!/usr/bin/env python
import datetime
import json
date = str(datetime.datetime.now())
print json.dumps({
"time": date
})
20
モジュールを実行してみる
[単体実行]
$ python timetest
{"time": "2015-07-23 16:39:22.283407”}
[モジュールとして実行]
$ ansible localhost -i ansible_hosts --module-path . -m timetest
127.0.0.1 | success >> {
"time": "2015-07-23 16:52:29.755416"
}
21
生成される実行プログラム
シェル変数ANSIBLE_KEEP_REMOTE_FILESを1にセットし
てansibleコマンドを実行すると…
$ export ANSIBLE_KEEP_REMOTE_FILES=1
$ ansible localhost -i ansible_hosts -M . -m timetest
-mで指定したモジュールから生成された実行可能プログラ
ムは、$HOME/.ansible/tmp/に配置されます。
通常、このプログラムは実行後に削除されますが、
ANSIBLE_KEEP_REMOTE_FILESに1がセットされている場
合は、削除されずに残ります。
22
timetestモジュールの
実行可能プログラム
自作したtimetestモジュールと、Ansibleが生成した実行可能
プログラムを確認してみると、内容に差異がなく、そのまま
転送されて実行されているようです。
[モジュール]
$ md5 timetest
MD5 (timetest) = ca381d31af18e5bce5d6e4e260362062
[実行可能プログラム]
$ md5 ~/.ansible/tmp/ansible-tmp-1437633590.03-115993239580867/timetest
MD5 (/Users/saitou/.ansible/tmp/ansible-tmp-1437633590.03-115993239580867/
timetest) = ca381d31af18e5bce5d6e4e260362062
23
引数はどうなるの?
$ ansible 192.168.0.1 -i ansible_hosts -M . -m timetest2 
-a time=072411352015.45 -u saitou -k -K -s
SSH password: ********
SUDO password[defaults to SSH password]: ********
192.168.0.1 | success >> {
"changed": true,
"time": "2015-07-24 11:35:45.001731"
}
モジュールの引数は、実行可能プログラムと同じディレクトリにあ
るargumentsファイルに文字列として格納されます。
$ cd ~/.ansible/tmp/ansible-tmp-1437705347.69-147453231832727
$ ls
arguments timetest2
$ cat arguments
time=072411352015.45
24
pingモジュールの
実行可能プログラム
[モジュール]
$ wc ansible/lib/ansible/modules/core/system/ping.py
61 235 1702 ansible/lib/ansible/modules/core/system/ping.py
[実行可能プログラム]
$ wc ~/.ansible/tmp/ansible-tmp-1437620077.92-75246064236647/ping
1665 6089 63273 ~/.ansible-tmp-1437620077.92-75246064236647/ping
ファイルサイズ激増
何かいろいろとやっていそう
Ansibleの標準モジュールは、ちょっと違います。
25
この差は何!?
26
pingモジュールの
コードを読んでみる
import exceptions
def main():
module = AnsibleModule(
argument_spec = dict(
data=dict(required=False, default=None),
),
supports_check_mode = True
)
result = dict(ping='pong')
if module.params['data']:
if module.params['data'] == 'crash':
raise exceptions.Exception("boom")
result['ping'] = module.params['data']
module.exit_json(**result)
from ansible.module_utils.basic import *
main()
このあたりが
あきらかに怪しい
27
lib/ansible/module_utils/basic.py
Ansibleは、モジュールに必要となる基本的な機能をライブ
ラリとして提供しています。
basic.pyには、モジュールの骨子となるAnsibleModuleクラ
スと、モジュールの振る舞いを決めるために利用できる便利
な関数があらかじめ定義されています。
モジュールから生成される実行可能プログラムは、基本的に
それ単体(1ファイル)で動作することが推奨されています。
basic.pyが提供しているコードは、モジュールから生成す
る実行可能プログラムにインライン展開される仕組みになっ
ており、実行可能プログラムの単独動作を実現しています。
28
標準モジュールに準拠させる(1/2)
自作モジュールをAnsibleの本家に取り込んでもらうには、
最低限、以下の3つの条件を満たしている必要があります。
1. DOCUMENTATION変数に概要説明を定義
2. EXAMPLES変数にモジュールの利用例を定義
3. AnsibleModuleクラスを利用する
注意) ansible.module_utils.basicは*でインポートする
29
標準モジュールに準拠させる(2/2)
#!/usr/bin/python
import datetime
DOCUMENTATION = '''
module: timetest
version_added: 1.9.2
short_description: Get date and time
description:
- Get date and time on target node
options: {}
author:
- "Hideki Saito"
'''
EXAMPLES = '''
# Get date and time
ansible target -m timetest
'''
def main():
module = AnsibleModule(argument_spec={})
date = dict(now=str(datetime.datetime.now()))
module.exit_json(**date)
from ansible.module_utils.basic import *
main()
本家にPull Requestするなら
このような形式が必須です
30
ドキュメンテーション
モジュールコード中の、DOCUMENTとEXAMPLESに書いた
概要や利用例は、ansible-docコマンドで利用されます。
[例] timetestモジュールのドキュメントを読む
$ ansible-doc -M . timetest
[実行結果]
> TIMETEST
Get date and time on target node
EXAMPLES:
# Get date and time
ansible target -m timetest
DOCUMENTATION
に定義した概要説明
EXAMPLESに定義し
た利用例
31
標準モジュールでの
引数の扱い
Ansible ver1.9の場合、モジュールのオプションとして指定
されたパラメータは、実行可能プログラムのMODULE_ARGS
に文字列として展開されます。
[例] statモジュールで指定したオプションの展開例
$ ansible localhost -i ansible_hosts -m stat 
-a "path=/etc/hosts get_md5=no get_checksum=no”
[展開例] 実行可能プログラム中のMODULE_ARGS
#!/usr/bin/python
…(中略)…
MODULE_ARGS = 'path=/etc/hosts get_md5=no get_checksum=no’
…(以下略)…
32
モジュールのテスト
33
常に実弾演習?
Ansibleは、モジュールのテストスクリプト(test-module)を提供しています。
モジュールのテストには、test-moduleスクリプトを利用しましょう。
$ git clone git@github.com:ansible/ansible.git --recursive
$ source ansible/v1/hacking/env-setup
$ ansible/v1/hacking/test-module -m ./timetest
* including generated source, if any, saving to: .ansible_module_generated
* this may offset any line numbers in tracebacks/debuggers!
***********************************
RAW OUTPUT
{"now": "2015-07-24 17:31:38.794721", "changed": false}
***********************************
PARSED OUTPUT
{
"changed": false,
}
34
まとめ
本日お話したことを以下にまとめます。
★ Ansibleのモジュールの働き
★ モジュールが実行される過程と、その確認方法について
★ 自分でモジュールを書く方法
★ 標準モジュールとして必要な要件
★ テスト方法
Ansibleは数多くの機能を標準モジュールとして提供してい
ますが、求める機能がその中になければ、自作することも可
能です。
35
あれば使う・なければ作る
★ さまざまな機能を提供するモジュール群が標準提供
されています
★ しかし、あなたが必要とする全ての機能をカバーし
ているわけではありません
★ あれば使う・なければ作るの精神で、Ansibleを
構成管理フレームワークとして活用しましょう!
36
参考
★ Developing Modules
Ansibleの公式モジュール開発ガイド
• [本家]
http://docs.ansible.com/ansible/developing_modules.html
• [勝手な和訳]
http://tzpst.hatenablog.com/entry/2015/07/21/175159
37
ご静聴ありがとうございました
JULY TECH FESTA 2015 38

Weitere ähnliche Inhalte

Was ist angesagt?

Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Hidetoshi Hirokawa
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからTakeshi Kuramochi
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackMasataka Tsukamoto
 
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Hiroshi Okano
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Ansible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic InventoryAnsible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic InventoryHideki Saito
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編Hideki Saito
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Hideki Saito
 
st2-docker ことはじめ
st2-docker ことはじめst2-docker ことはじめ
st2-docker ことはじめShu Sugimoto
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 
Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1Kazuyuki Ichikawa
 

Was ist angesagt? (20)

Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
 
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Ansible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic InventoryAnsible meetuptokyo 2015 Dynamic Inventory
Ansible meetuptokyo 2015 Dynamic Inventory
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
 
st2-docker ことはじめ
st2-docker ことはじめst2-docker ことはじめ
st2-docker ことはじめ
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
Enjoy the Ansible
Enjoy the AnsibleEnjoy the Ansible
Enjoy the Ansible
 
Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1Ansibleを失敗しながら学ぶ その1
Ansibleを失敗しながら学ぶ その1
 

Andere mochten auch

マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうTakashi Abe
 
Hadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopHadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopYifeng Jiang
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからYasuhiro Horiuchi
 
Jtf2015 edison consul_cluster
Jtf2015 edison consul_clusterJtf2015 edison consul_cluster
Jtf2015 edison consul_clusterNobuyuki Matsui
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!zaki4649
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由axsh co., LTD.
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキストEtsuji Nakai
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ  .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会わしわし的おすすめ  .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会Yukinori KITADAI
 
ハードなOpen flowswitcの話
ハードなOpen flowswitcの話ハードなOpen flowswitcの話
ハードなOpen flowswitcの話Masayuki Miyake
 
Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献yaegashi
 
Open wrtでwired likeなwifinwを作ってみた。
Open wrtでwired likeなwifinwを作ってみた。Open wrtでwired likeなwifinwを作ってみた。
Open wrtでwired likeなwifinwを作ってみた。m_masataka
 
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Terui Masashi
 
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!Takeshi Kuramochi
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFWTomoya Hibi
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみましたTakeshi Kuramochi
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Tomoya Hibi
 
まったりセンサー @ Code for Nanto
まったりセンサー @ Code for Nantoまったりセンサー @ Code for Nanto
まったりセンサー @ Code for NantoBeMarble
 

Andere mochten auch (20)

マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
 
Hadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopHadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise Hadoop
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
Jtf2015 edison consul_cluster
Jtf2015 edison consul_clusterJtf2015 edison consul_cluster
Jtf2015 edison consul_cluster
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキスト
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ  .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会わしわし的おすすめ  .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
 
ハードなOpen flowswitcの話
ハードなOpen flowswitcの話ハードなOpen flowswitcの話
ハードなOpen flowswitcの話
 
Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献Ansible モジュール 作成・配布・貢献
Ansible モジュール 作成・配布・貢献
 
Open wrtでwired likeなwifinwを作ってみた。
Open wrtでwired likeなwifinwを作ってみた。Open wrtでwired likeなwifinwを作ってみた。
Open wrtでwired likeなwifinwを作ってみた。
 
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
 
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
 
Lagopusで試すFW
Lagopusで試すFWLagopusで試すFW
Lagopusで試すFW
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみました
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
まったりセンサー @ Code for Nanto
まったりセンサー @ Code for Nantoまったりセンサー @ Code for Nanto
まったりセンサー @ Code for Nanto
 

Ähnlich wie Deep Dive into Modules

OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016VirtualTech Japan Inc.
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】WESEEKWESEEK
 
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステムロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステムDoNabe1
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発GoAzure
 
AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法Amazon Web Services Japan
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
OMSのあれこれ
OMSのあれこれOMSのあれこれ
OMSのあれこれSunao Tomita
 
プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610HIDEOMI SUZUKI
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider貴志 上坂
 
Microsoft Tunnel 概要
Microsoft Tunnel 概要Microsoft Tunnel 概要
Microsoft Tunnel 概要Yutaro Tamai
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理You&I
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 

Ähnlich wie Deep Dive into Modules (20)

OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016
 
Gamedevenvstudy1
Gamedevenvstudy1Gamedevenvstudy1
Gamedevenvstudy1
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
 
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステムロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
 
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
 
AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
第11回しゃちほこオラクル倶楽部
第11回しゃちほこオラクル倶楽部第11回しゃちほこオラクル倶楽部
第11回しゃちほこオラクル倶楽部
 
OMSのあれこれ
OMSのあれこれOMSのあれこれ
OMSのあれこれ
 
プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
Microsoft Tunnel 概要
Microsoft Tunnel 概要Microsoft Tunnel 概要
Microsoft Tunnel 概要
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 

Mehr von Hideki Saito

これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Hideki Saito
 
Ansible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめAnsible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめHideki Saito
 
Getting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGGetting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGHideki Saito
 
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007Hideki Saito
 
How to contribute code to ansible awx
How to contribute code to ansible awxHow to contribute code to ansible awx
How to contribute code to ansible awxHideki Saito
 
Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0Hideki Saito
 
OpenStackSDK with Ansible
OpenStackSDK with AnsibleOpenStackSDK with Ansible
OpenStackSDK with AnsibleHideki Saito
 
How to contribute AWX
How to contribute AWXHow to contribute AWX
How to contribute AWXHideki Saito
 
Ansible Tower on OpenShift
Ansible Tower on OpenShiftAnsible Tower on OpenShift
Ansible Tower on OpenShiftHideki Saito
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXHideki Saito
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXHideki Saito
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化Hideki Saito
 
Ansible2とOpenStackの関係
Ansible2とOpenStackの関係Ansible2とOpenStackの関係
Ansible2とOpenStackの関係Hideki Saito
 
OpenStack with SR-IOV
OpenStack with SR-IOVOpenStack with SR-IOV
OpenStack with SR-IOVHideki Saito
 
OpenStack Summitの歩き方
OpenStack Summitの歩き方OpenStack Summitの歩き方
OpenStack Summitの歩き方Hideki Saito
 
OpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver ReportOpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver ReportHideki Saito
 

Mehr von Hideki Saito (20)

これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021
 
Ansible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめAnsible Fest 2020 技術トピックまとめ
Ansible Fest 2020 技術トピックまとめ
 
Getting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGGetting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NG
 
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007
 
How to contribute code to ansible awx
How to contribute code to ansible awxHow to contribute code to ansible awx
How to contribute code to ansible awx
 
Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0Update: Ansible Tower 3.6.0
Update: Ansible Tower 3.6.0
 
OpenStackSDK with Ansible
OpenStackSDK with AnsibleOpenStackSDK with Ansible
OpenStackSDK with Ansible
 
How to contribute AWX
How to contribute AWXHow to contribute AWX
How to contribute AWX
 
Ansible Tower on OpenShift
Ansible Tower on OpenShiftAnsible Tower on OpenShift
Ansible Tower on OpenShift
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
 
Ansible with AWX
Ansible with AWXAnsible with AWX
Ansible with AWX
 
Ansible101
Ansible101Ansible101
Ansible101
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
OpenStack Now!
OpenStack Now!OpenStack Now!
OpenStack Now!
 
Ansible2とOpenStackの関係
Ansible2とOpenStackの関係Ansible2とOpenStackの関係
Ansible2とOpenStackの関係
 
OpenStack with SR-IOV
OpenStack with SR-IOVOpenStack with SR-IOV
OpenStack with SR-IOV
 
OpenStack Summitの歩き方
OpenStack Summitの歩き方OpenStack Summitの歩き方
OpenStack Summitの歩き方
 
OpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver ReportOpenStack Summit 2015 Vancouver Report
OpenStack Summit 2015 Vancouver Report
 

Deep Dive into Modules