SlideShare a Scribd company logo
Submit Search
Upload
Ansible モジュール 作成・配布・貢献
Report
Share
Y
yaegashi
Follow
•
6 likes
•
2,114 views
1
of
33
Ansible モジュール 作成・配布・貢献
•
6 likes
•
2,114 views
Report
Share
Download Now
Download to read offline
Technology
Ansible Meetup in Tokyo 2015.09 の Lightning Talk で発表したスライドです
Read more
Y
yaegashi
Follow
Recommended
サービス構成説明書@このこん by
サービス構成説明書@このこん
Fukuda Takuro
528 views
•
12 slides
テストを書こう、Unity編 by
テストを書こう、Unity編
Hiroto Imoto
22K views
•
43 slides
XML-RPC : Pythonが「電池付属」と呼ばれる理由 by
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
8.3K views
•
25 slides
ゼロから始める自作 CPU 入門 by
ゼロから始める自作 CPU 入門
Hirotaka Kawata
42K views
•
38 slides
Ansible troubleshooting 101_2021 by
Ansible troubleshooting 101_2021
Hideki Saito
867 views
•
42 slides
eggとはなんだったのか 栄光のsetuptools by
eggとはなんだったのか 栄光のsetuptools
Atsushi Odagiri
685 views
•
27 slides
More Related Content
What's hot
Ansible meetuptokyo 2015 Dynamic Inventory by
Ansible meetuptokyo 2015 Dynamic Inventory
Hideki Saito
5.4K views
•
14 slides
サーバ構築を自動化する 〜Ansible〜 by
サーバ構築を自動化する 〜Ansible〜
Yui Ito
7.2K views
•
29 slides
書こう! 使おう! 単体テスト by
書こう! 使おう! 単体テスト
ryohji ikebe
199 views
•
32 slides
Ansible tower 構築方法と使い方 by
Ansible tower 構築方法と使い方
Hiroshi Okano
17.5K views
•
77 slides
8時間耐久 PHP構築の教室 by
8時間耐久 PHP構築の教室
Yusuke Ando
4.1K views
•
89 slides
Pythonでの開発を効率的に進めるためのツール設定 by
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
46.7K views
•
54 slides
What's hot
(20)
Ansible meetuptokyo 2015 Dynamic Inventory by Hideki Saito
Ansible meetuptokyo 2015 Dynamic Inventory
Hideki Saito
•
5.4K views
サーバ構築を自動化する 〜Ansible〜 by Yui Ito
サーバ構築を自動化する 〜Ansible〜
Yui Ito
•
7.2K views
書こう! 使おう! 単体テスト by ryohji ikebe
書こう! 使おう! 単体テスト
ryohji ikebe
•
199 views
Ansible tower 構築方法と使い方 by Hiroshi Okano
Ansible tower 構築方法と使い方
Hiroshi Okano
•
17.5K views
8時間耐久 PHP構築の教室 by Yusuke Ando
8時間耐久 PHP構築の教室
Yusuke Ando
•
4.1K views
Pythonでの開発を効率的に進めるためのツール設定 by Atsushi Odagiri
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
•
46.7K views
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~ by Kei IWASAKI
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Kei IWASAKI
•
2.7K views
Pythonでブラウザをいっぱい動かしたい by Kameko Ohmura
Pythonでブラウザをいっぱい動かしたい
Kameko Ohmura
•
206 views
自作x86エミュレータの終焉 by Daisuke Kamikawa
自作x86エミュレータの終焉
Daisuke Kamikawa
•
5K views
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成 by Fuminobu TAKEYAMA
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
Fuminobu TAKEYAMA
•
3.8K views
SPAJAMでやったこと by Hiroto Imoto
SPAJAMでやったこと
Hiroto Imoto
•
4.9K views
Open Design Computer Project - Tsukuba.pm by Hirotaka Kawata
Open Design Computer Project - Tsukuba.pm
Hirotaka Kawata
•
960 views
最強のPHP統合開発環境 PHPStorm by 晃 遠山
最強のPHP統合開発環境 PHPStorm
晃 遠山
•
12.3K views
PHPカンファレンス2014の懇親会飛び込みLT資料 by Junichi Ishida
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
•
3.2K views
Python × Herokuで作る 雑談slack bot by dcubeio
Python × Herokuで作る 雑談slack bot
dcubeio
•
12.1K views
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた by akira6592
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
akira6592
•
4.1K views
AnsibleによるInfrastructure as code入門 by kk_Ataka
AnsibleによるInfrastructure as code入門
kk_Ataka
•
62.7K views
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython by tomitomi3 tomitomi3
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
tomitomi3 tomitomi3
•
357 views
Intellij idea for php by Kazuhiko Uno
Intellij idea for php
Kazuhiko Uno
•
3K views
外国人旅行者向けラーメン店検索アプリを作る話@Code for KOSEN勉強会#1 by Yoshihiro Wada
外国人旅行者向けラーメン店検索アプリを作る話@Code for KOSEN勉強会#1
Yoshihiro Wada
•
2.7K views
Viewers also liked
DockerHubを活用してAnsibleのPlaybookを自動ビルドする by
DockerHubを活用してAnsibleのPlaybookを自動ビルドする
Koji Shiraishi
1.9K views
•
20 slides
Ansible Playbookの短時間デバッグ方法 by
Ansible Playbookの短時間デバッグ方法
Kishin Yagami
6K views
•
19 slides
Ansibleは簡単なIT自動化 by
Ansibleは簡単なIT自動化
You&I
246 views
•
30 slides
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA by
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
Kazuhito Miura
7.8K views
•
144 slides
Ansible 2.0を使って組む kubernetesクラスタ vol.1 by
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
11.7K views
•
61 slides
Re: ご注文は自動化ですか?[2] by
Re: ご注文は自動化ですか?[2]
Masahito Zembutsu
14.8K views
•
204 slides
Viewers also liked
(20)
DockerHubを活用してAnsibleのPlaybookを自動ビルドする by Koji Shiraishi
DockerHubを活用してAnsibleのPlaybookを自動ビルドする
Koji Shiraishi
•
1.9K views
Ansible Playbookの短時間デバッグ方法 by Kishin Yagami
Ansible Playbookの短時間デバッグ方法
Kishin Yagami
•
6K views
Ansibleは簡単なIT自動化 by You&I
Ansibleは簡単なIT自動化
You&I
•
246 views
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA by Kazuhito Miura
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
Kazuhito Miura
•
7.8K views
Ansible 2.0を使って組む kubernetesクラスタ vol.1 by Hidetoshi Hirokawa
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
•
11.7K views
Re: ご注文は自動化ですか?[2] by Masahito Zembutsu
Re: ご注文は自動化ですか?[2]
Masahito Zembutsu
•
14.8K views
Deep Dive into Modules by Hideki Saito
Deep Dive into Modules
Hideki Saito
•
5.2K views
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用! by Takeshi Kuramochi
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
Takeshi Kuramochi
•
2K views
Ansibleを使ってみよう~Windowsターゲット編~ by Takeshi Kuramochi
Ansibleを使ってみよう~Windowsターゲット編~
Takeshi Kuramochi
•
5.9K views
Enjoy the Ansible by Yasuyuki Fujikawa
Enjoy the Ansible
Yasuyuki Fujikawa
•
2.2K views
Ansible はじめてみました by Takeshi Kuramochi
Ansible はじめてみました
Takeshi Kuramochi
•
2.7K views
実録!AnsiblevsChef-solo by Recruit Technologies
実録!AnsiblevsChef-solo
Recruit Technologies
•
3.2K views
Ansible ではじめるサーバ作業の自動化 by Masashi Shinbara
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
•
32.8K views
Ansible 2.0 のサマライズとこれから by Takeshi Kuramochi
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
•
6.2K views
ヒカルのGo 資料 Webアプリケーションの作り方 by Yosuke Furukawa
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
•
25.9K views
FINAL FANTASY Record Keeperを支えたGolang by Yoshiki Shibukawa
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
•
31K views
GoでMinecraftっぽいの作る by 京大 マイコンクラブ
GoでMinecraftっぽいの作る
京大 マイコンクラブ
•
25.1K views
【初心者向け】Go言語勉強会資料 by Yuji Otani
【初心者向け】Go言語勉強会資料
Yuji Otani
•
37.1K views
Go MobileでAndroidアプリ開発 by Takuya Ueda
Go MobileでAndroidアプリ開発
Takuya Ueda
•
32.8K views
AnsibleをWerckerでCIして テストが終わると 本番環境が出来てる話 by Kazuho Murakami
AnsibleをWerckerでCIして テストが終わると 本番環境が出来てる話
Kazuho Murakami
•
2.3K views
Similar to Ansible モジュール 作成・配布・貢献
Ansibleで始めるインフラ構築自動化 by
Ansibleで始めるインフラ構築自動化
dcubeio
56.1K views
•
63 slides
How to contribute AWX by
How to contribute AWX
Hideki Saito
1.3K views
•
11 slides
Eclipse を使った java 開発 111126 杉浦 by
Eclipse を使った java 開発 111126 杉浦
urasandesu
5.2K views
•
71 slides
ひのきのぼうだけで全クリ目指す by
ひのきのぼうだけで全クリ目指す
AromaBlack
1.5K views
•
35 slides
あなたの安心を高速に守る Container-based CI by
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
6.5K views
•
96 slides
Cent osにpyhtonをインストールしてみよう by
Cent osにpyhtonをインストールしてみよう
2bo 2bo
4.1K views
•
25 slides
Similar to Ansible モジュール 作成・配布・貢献
(20)
Ansibleで始めるインフラ構築自動化 by dcubeio
Ansibleで始めるインフラ構築自動化
dcubeio
•
56.1K views
How to contribute AWX by Hideki Saito
How to contribute AWX
Hideki Saito
•
1.3K views
Eclipse を使った java 開発 111126 杉浦 by urasandesu
Eclipse を使った java 開発 111126 杉浦
urasandesu
•
5.2K views
ひのきのぼうだけで全クリ目指す by AromaBlack
ひのきのぼうだけで全クリ目指す
AromaBlack
•
1.5K views
あなたの安心を高速に守る Container-based CI by Wataru MIYAGUNI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
•
6.5K views
Cent osにpyhtonをインストールしてみよう by 2bo 2bo
Cent osにpyhtonをインストールしてみよう
2bo 2bo
•
4.1K views
20170131 python3 6 PEP526 by masahitojp
20170131 python3 6 PEP526
masahitojp
•
3.3K views
IT Automation with OpenStack and Ansible/AWX by Hideki Saito
IT Automation with OpenStack and Ansible/AWX
Hideki Saito
•
1.5K views
IT Automation with OpenStack and Ansible/AWX by Hideki Saito
IT Automation with OpenStack and Ansible/AWX
Hideki Saito
•
646 views
Haskell 6-module by Mahito Ogura
Haskell 6-module
Mahito Ogura
•
1.1K views
Java SE 9の紹介: モジュール・システムを中心に by Taku Miyakawa
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
•
145.2K views
Code ignitertalk 01 by Takako Miyagawa
Code ignitertalk 01
Takako Miyagawa
•
1.7K views
Android Hacks - Hack31 by Masanori Ohkawara
Android Hacks - Hack31
Masanori Ohkawara
•
551 views
Clang Modules by Wataru Kimura
Clang Modules
Wataru Kimura
•
5.7K views
Hadoop conference 2013winter_for_slideshare by Yu Ishikawa
Hadoop conference 2013winter_for_slideshare
Yu Ishikawa
•
695 views
Reco choku tech night #09 -reinvent2018報告会- by recotech
Reco choku tech night #09 -reinvent2018報告会-
recotech
•
482 views
Linuxのユーザーランドをinitから全てまるごとgolangで書く by Tetsuyuki Kobayashi
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
•
9.5K views
Power shell の基本操作と処理の自動化 v2_20120514 by junichi anno
Power shell の基本操作と処理の自動化 v2_20120514
junichi anno
•
7.1K views
Ansibleはじめよぉ -Infrastructure as Codeを理解- by Shingo Kitayama
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Shingo Kitayama
•
10.3K views
[1999/06/10] VCDC Plus 1999 Jun / Visual C++ 6.0 デバッグ テクニック by Tatsuhiko Tanaka
[1999/06/10] VCDC Plus 1999 Jun / Visual C++ 6.0 デバッグ テクニック
Tatsuhiko Tanaka
•
360 views
More from yaegashi
Terraforming Windows Virtual Desktop Infrastructure on Azure by
Terraforming Windows Virtual Desktop Infrastructure on Azure
yaegashi
127 views
•
18 slides
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD by
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
yaegashi
204 views
•
57 slides
Customazed CLI: カスタムVMイメージ作成支援ツール by
Customazed CLI: カスタムVMイメージ作成支援ツール
yaegashi
678 views
•
16 slides
Goで作って配布するAzureコマンドラインユーティリティ by
Goで作って配布するAzureコマンドラインユーティリティ
yaegashi
226 views
•
16 slides
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築 by
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
156 views
•
27 slides
msgraph: Terraform provider for Microsoft Graph by
msgraph: Terraform provider for Microsoft Graph
yaegashi
71 views
•
26 slides
More from yaegashi
(14)
Terraforming Windows Virtual Desktop Infrastructure on Azure by yaegashi
Terraforming Windows Virtual Desktop Infrastructure on Azure
yaegashi
•
127 views
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD by yaegashi
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
yaegashi
•
204 views
Customazed CLI: カスタムVMイメージ作成支援ツール by yaegashi
Customazed CLI: カスタムVMイメージ作成支援ツール
yaegashi
•
678 views
Goで作って配布するAzureコマンドラインユーティリティ by yaegashi
Goで作って配布するAzureコマンドラインユーティリティ
yaegashi
•
226 views
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築 by yaegashi
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
•
156 views
msgraph: Terraform provider for Microsoft Graph by yaegashi
msgraph: Terraform provider for Microsoft Graph
yaegashi
•
71 views
go generate 完全入門 by yaegashi
go generate 完全入門
yaegashi
•
1.6K views
msgraph.go: Go言語で Microsoft Graph プログラミング by yaegashi
msgraph.go: Go言語で Microsoft Graph プログラミング
yaegashi
•
1.1K views
AnsibleでAzureの インフラを管理する話 + α by yaegashi
AnsibleでAzureの インフラを管理する話 + α
yaegashi
•
477 views
msgraph-sshpubkey by yaegashi
msgraph-sshpubkey
yaegashi
•
205 views
Microsoft Graph API Library for Go by yaegashi
Microsoft Graph API Library for Go
yaegashi
•
4.5K views
Raspberry Pi + Go で IoT した話 by yaegashi
Raspberry Pi + Go で IoT した話
yaegashi
•
3.1K views
golang binary hacks by yaegashi
golang binary hacks
yaegashi
•
2.8K views
StackExchangeで見たシステムプログラミング案件 by yaegashi
StackExchangeで見たシステムプログラミング案件
yaegashi
•
434 views
Recently uploaded
JJUG CCC.pptx by
JJUG CCC.pptx
Kanta Sasaki
6 views
•
14 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdf
icebreaker4
353 views
•
13 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
23 views
•
38 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
129 views
•
42 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
121 views
•
64 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
73 views
•
26 slides
Recently uploaded
(11)
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
353 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
23 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
129 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
121 views
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
73 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
18 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
71 views
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
471 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
88 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
376 views
Ansible モジュール 作成・配布・貢献
1.
Ansible モジュール 作成・配布・貢献 八重樫 剛史 GitHub:
@yaegashi Twitter: @hogegashi
2.
自己紹介 八重樫 剛史 (YAEGASHI
Takeshi) - Twitter @hogegashi - GitHub @yaegashi Ansible を個人的に使用しています Python の腕前は素人に毛がはえた程度です
3.
今日の話題 Ansible モジュールの紹介: blockinfile Ansible
モジュールの作成と配布のノウハウ・ベストプラクティス Ansible アップストリーム (本家) への貢献の道 yaegashi 自身の経験をもとにお話します スライドを作りすぎましたが全部発表します スライドは後ほど公開します
4.
blockinfile モジュールの紹介
5.
blockinfile モジュールの紹介 テキストファイルに複数行のブロックを挿入・更新・削除するモジュール 名前は標準モジュール lineinfile
からの連想 Ansible にはなぜか複数行のテキストを扱うモジュールがないので作った - lineinfile は 1 行しか挿入・更新・削除できない - ansible-project などで相談すると、だいたい template や assemble を使うことを 勧められるが、そういうのを使わず既存ファイルを修正したいときもある
6.
blockinfile 利用例 apache2 の設定ファイルに
<Location> ブロックを挿入するタスク - name: insert <Location> block in apache2 config blockinfile: dest: /etc/apache2/sites-available/default.conf insertbefore: </VirtualHost> block: | <Location /app> ProxyPass http://127.0.0.1:8000 ProxyPassReverse http://127.0.0.1:8000 </Location>
7.
/etc/apache2/sites-available/default.conf (before) blockinfile 利用例 <VirtualHost
*:80> <Directory ...> </Directory> </VirtualHost> - name: insert <Location> block in apache2 … blockinfile: dest: /etc/apache2/sites-available/… insertbefore: </VirtualHost> block: | <Location /app> ProxyPass http://localhost:8080 ProxyPassReverse http://localhost:8080 </Location>
8.
/etc/apache2/sites-available/default.conf (after) <VirtualHost *:80> <Directory
...> </Directory> # BEGIN ANSIBLE MANAGED BLOCK <Location /app> ProxyPass http://localhost:8080 ProxyPassReverse http://localhost:8080 </Location> # END ANSIBLE MANAGED BLOCK </VirtualHost> blockinfile 利用例 blockinfile に 追加されたマーカー (変更可)
9.
blockinfile モジュールまとめ 簡単にセットアップできて便利なのでみなさんぜひ使ってください GitHub: ansible-role-blockinfile Ansible
Galaxy: blockinfile 関連ブログポスト: - http://blog.keshi.org/hogememo/2014/08/24/ansible-blockinfile-module - http://blog.keshi.org/hogememo/2015/04/26/ansible-blockinfile-v0-3
10.
Ansible モジュール開発のノウハウ
11.
Ansible モジュール開発のノウハウ 時間が足りないので省略 ユニットテストやドキュメントの自動生成などネタはあるが、またの機会に… 最初は似た機能の標準モジュールを真似するところから始めるのが良いと思う blockinfile モジュールも
lineinfile や replace からのコピペで作りました
12.
Ansible モジュール配布のノウハウ (今日の本題 1)
13.
Ansible モジュール配布のノウハウ モジュールはロールの形にして GitHub
で公開しましょう
14.
モジュールをロールに格納する http://github.com/yaegashi/ansible-role-blockinfile の構造 - ├─/ansible-role-blockinfile ├─/library │ └─blockinfile.py ├─/meta │
└─default.yml ├─/tasks (なし) ├─/tests └─README.md /library がロール実行時にモジュール検索パスに追加される ひとつのロールに複数のモジュールを収録できる /meta/default.yml の中でロール依存関係の記述も可能 モジュールのユニットテストも入れておくとよい ロールおよびモジュールのドキュメント ロールはタスクを含んでいる必要はない
15.
Ansible Galaxy にロールを登録 ユーザによるレビュー・評価を受けられ る GitHub
がバックエンド - Issue Tracker でバグ報告をしてもらえる - パッチをプルリクエストしてもらえる yaegashi.blockinfile ロール https://galaxy.ansible.com/list#/roles/1475
16.
Ansible Galaxy にロールを登録 Ansible
Galaxy で公開したロールは インストールやアップデートが簡単!! $ ansible-galaxy install yaegashi.blockinfile
17.
Ansible Galaxy 登録ロールからのモジュール利用 blockinfile
モジュールを利用するプレイブック一式のディレクトリ構成 ├─/roles │ ├─/yaegashi.blockinfile │ ├─/library │ │ └─blockinfile.py │ └─/meta │ └─default.yml ├─/library │ └─othermodule.py ├─playbook1.yml ├─playbook2.yml ansible-galaxy でインストールした yaegashi.blockinfile ロール
18.
Ansible Galaxy 登録ロールからのモジュール利用 blockinfile
モジュールを利用するプレイブックの構成 --- - hosts: all roles: - yaegashi.blockinfile - role1 - role2 tasks: - shell: ... - blockinfile: ... yaegashi.blockinfile ロールを 最初に呼び出す yaegashi.blockinfile ロールの モジュールは別のロールからも呼び出せ る プレイブックのタスクでも モジュールが使用できる
19.
Ansible モジュール貢献のノウハウ (今日の本題 2)
20.
Ansible モジュール 貢献のノウハウ 自作の
Ansible モジュールが好評! Ansible アップストリーム (本家) にモジュールをコントリビュート (寄贈) しよう!
21.
モジュール追加のプルリクエストを GitHub の
ansible-modules-extras に出す Ansible 新規モジュール プルリクエスト ansible-modules-extras とは? - Ansible の新規モジュールが追加される登竜門リポジトリ - これに収録されたモジュールは Ansible のリリースと一緒に配布される - 重要度の高いモジュールは ansible-modules-core に昇格することもあ る
22.
Ansible 新規モジュール チェックリスト Module
Checklist をよく読んでモジュールを仕上げましょう Module Checklist の主な内容 ライセンス: GPL version 3 最初の Python コメントに明記すること ドキュメント: - required: は全パラメータに設定必須 - default: は required: false なら必須、そうでなければ不要 - author: に作者名と GitHub アカウント名を明記すること - U() C() I() M() などのテキスト修飾を適切に使うこと - などなど コード: - いかなる例外も出さないこと 例外出したらそれはバグ - エラーは sys.exit() で終了しない 代わりに fail_json() を使うこと - from ansible.module_utils.basic import * は最後に書くこと - などなど
23.
Ansible 新規モジュール 承認基準
(2015/05) Travis CI による自動ビルドチェックが成功する - Python 2.4 で動かないモジュールは失敗する (PEP 308 使ってるなど) Module Checklist に適合している 既存モジュール作者 (148名) によるレビューと推薦 - 2 人以上からの +1 があり、 -1 がないこと - 既存モジュール作者が提出するモジュールは自薦の +1 を含めてよい (マージ後) モジュールの作者がメンテナとしてバグ報告などに対処できること
24.
Ansible 新規モジュール プルリクエスト実例と経過 (今日の本題 3)
25.
Ansible 新規モジュール プルリクエスト実例と経過 ansible-modules-extras
に 2 つのプルリクエストを出しているのだが… - Aug 14: #832 New module: blockinfile - Sep 11: #958 New modules: openvz, openvz_exec コメント数 0 誰もレビューしてくれない (T_T)
26.
Ansible 新規モジュール プルリクエスト実例と経過 Google
Groups の ansible-devel で愚痴ったのだが… スレッドに自分以外の投稿なし 誰も反応してくれない (T_T)
27.
Ansible 新規モジュール プルリクエスト実例と経過 そこに
Ansible Community Guy を名乗る男からメールが!
28.
Ansible 新規モジュール 承認プロセスの現状 Greg
DeKoenigsberg 曰く - 率直にいって現在の新規モジュール承認プロセスはあまりうまくいってない - 手続きが煩雑すぎる - レビュアーに対する動機付けが弱い - レビュアーを既存モジュール作者に限定したのは間違いだったかもしれない
29.
Ansible 新規モジュール 承認プロセスの改革 Greg
DeKoenigsberg 曰く - 新規モジュール承認プロセスの修正を検討している - 既存モジュール作者にレビュアーを限定しない予定である 新規モジュール承認基準の要点 - 誰かが検査・レビューすること - 誰かが実際に自分の環境でテストすること - モジュール作者がマージ後もメンテナンスすること - ユニットテストがあること (core モジュールのみ)
30.
Ansible 新規モジュール 承認プロセスの感想 yaegashi
の感想 - 増え続けるモジュールを core と extras に分離し、 extras モジュールのレビューと メンテナンスをコミュニティに任せようとする方針は正しい - しかしながら、現時点ではコミュニティメンバーが他人の作ったモジュールのレ ビューを行う動機付けに乏しい - 既存モジュール作者にコネがなければレビューもしてもらえないのではないか - 自分の専門外の分野のモジュールのレビューはできないのではないか - 他の上手くいっているプロジェクトから学ぶことはないだろうか - Linux カーネルとか… 規模が違いすぎる?
31.
新規モジュール コントリビュート完遂の道のりは険しい - 現時点ではコネがない限り、新規モジュールのマージは難しそう -
Ansible, Inc. でも現状を問題に感じており、改革をしようとしている - しばらくプルリクエストの放置プレイが続きそうだが、気長に待ちましょう - 新規ユーザ獲得の努力、コネを作る努力は地道にしておきましょう Ansible 新規モジュール 承認プロセス まとめ
32.
まとめ
33.
blockinfile モジュールの紹介 Ansible モジュール配布のノウハウ・ベストプラクティス Ansible
モジュール寄贈の概要・実例 Ansible 新規モジュール承認プロセスの今後 まとめ