SlideShare a Scribd company logo
知っていると 
ちょっと便利なこと 
若山 史郎 @r_rudi
おまえだれよ? 
• 若山史郎 @ ツキノワ株式会社 
• お仕事募集中です 
• Twitter ID: r_rudi 
• 著書 
• Ansible: 「入門Ansible」 
• Sphinx :「 Sphinxをはじめよう」
今日お話すること 
• 知っているとちょっと便利なこと 
• いろいろなな小ネタを用意しました 
• 全部で7つです。お互いに関連性はありません
一つ目 
roles_path 
検閲済み
roles_path (1/7) 
• roleが散らばって困っていませんか 
• リポジトリが違う場合など 
• ansible.cfgに “roles_path” を設定できます 
roles_path=/opt/roles:../roles 
! 
• “:”で区切って複数個指定できます 
• “..” など相対パスも使えます
roleの検索順序 (1/7) 
• roleの検索順序 
1. 自分のディレクトリの roles 以下 
2. 自分のディレクトリ 
3. roles_pathを前から探していく 
./deploy.yml 
/inventory 
/roles/hoge/tasks 
/hoge/tasks/ 
← こっちが先
whenの複数条件 (2/7) 
when: ansible_os_family == "RedHat" ! and mode == "production" 
• 長すぎ。こう書けます 
when: 
- ansible_os_family == "RedHat" 
- mode == "production"
shellで環境変数 (3/7) 
• “environment” 
• ちなみにどのモジュールでも使えます 
! 
! 
- shell: something.sh 
environment: 
PATH: /opt/bin 
• sourceは使えない。 “.” かbashで実行 
- shell: source envfile && something.sh 
stderr: /bin/sh: 1: source: not found 
- shell: . envfile && something.sh 
- shell: source envfile && something.sh 
executable=/bin/bash
数字として比較 (4/7) 
• 普通に書くと、文字列での比較となってしまう 
- shell: cat /var/log/something.log | wc -l 
register: logline 
- fail: msg="too long" 
when: logline.stdout > 300 
- shell: cat /var/log/something.log | wc -l 
register: logline 
- fail: msg="too long" 
when: logline.stdout | int > 300
バージョンを比較 (4/7) 
• “3.0.16” などのバージョンを比較できます 
vars: 
version: 3.0.16 
tasks: 
- debug: msg="its old!" 
when: version | version_compare(‘3.0.20’, '<=')
正規表現で比較 (4/7) 
vars: 
url: "http://example.com/users/foo/resources/bar" 
! 
tasks: 
- shell: "msg='パターン 1にマッチ (完全一致)’" 
when: url | match("http://example.com/users/.*/ 
resources/.*") 
! 
- debug: "msg='パターン 2にマッチ (部分一致)’" 
when: url | search("/users/.*/resources/.*")
cronモジュール (5/7) 
• crontabの書き方を忘れたりしませんか? 
• minute, hour などで指定できます 
cron: name=“check” 
minute=30 hour="5,2" job="ls -alh > /dev/null" 
! 
• @reboot なども指定できます 
cron: name="reboot" special_time=reboot job="ls -lah" 
! 
• AnsibleのDSLを覚えておけばいい
local_fact (6/7) 
• /etc/ansible/facts.d/hosts.fact 
• 対象ホストにファイルを置くとfactとなる 
[group] 
stage=! 
development 
role=webserver 
! 
• 使い方 
- debug: msg={{ ansible_local.hosts.group.role }}
local_fact (6/7) 
• JSONでも書けます 
{ 
"group": { 
! 
“role”:"webserver", 
“stage”: “development” 
} 
} 
! 
• 実行権限をつけると、動的に生成できます 
#!/bin/sh 
cat <<EOF 
{"group": { 
“role”:"webserver", 
“stage”: “development” } 
} 
EOF
local_path (6/7) 
• /etc/ansible/facts.d/じゃない場所を使いたい! 
• setupモジュールを使う 
tasks: 
- setup: fact_path="/home/shirou/tmp/ansible" 
- debug: msg={{ ansible_local.hosts.group.role }}
chatops (7/7) 
• slack + hubot
まとめ 
1. role_path 
2. when 
3. shell 
4. 数字として比較 
5. cron 
6. local_fact 
7. hubot + slack 
• 小ネタを用意しました 
• 全部ドキュメントに書い 
てあります 
• hubotは後でgistを 
• 今後も便利な機能が増え 
ていくので乞うご期待

More Related Content

Similar to Ansible meetup201409

Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)hiboma
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Naotoshi Seo
 
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)noldor
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
Nishida Kansuke
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
Mahito Ogura
 
長いの
長いの長いの
長いのemasaka
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由Yohei Azekatsu
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
 
Mod lua
Mod luaMod lua
Mod luado_aki
 
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorksElasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発emasaka
 
What is chef
What is chefWhat is chef
What is chef
Yukihiko SAWANOBORI
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
Kazumi IWANAGA
 
RealtimeTweakPickerMode
RealtimeTweakPickerModeRealtimeTweakPickerMode
RealtimeTweakPickerMode
Yoh Akiyama
 

Similar to Ansible meetup201409 (20)

Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
Haikara
HaikaraHaikara
Haikara
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
長いの
長いの長いの
長いの
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
Mod lua
Mod luaMod lua
Mod lua
 
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorksElasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
What is chef
What is chefWhat is chef
What is chef
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
 
RealtimeTweakPickerMode
RealtimeTweakPickerModeRealtimeTweakPickerMode
RealtimeTweakPickerMode
 

More from shirou wakayama

ansible-playbook useful command line options
ansible-playbook useful command line optionsansible-playbook useful command line options
ansible-playbook useful command line options
shirou wakayama
 
EdisonでMQTT
EdisonでMQTTEdisonでMQTT
EdisonでMQTT
shirou wakayama
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化
shirou wakayama
 
MQTT meetup in Tokyo 機能概要
MQTT meetup in Tokyo 機能概要MQTT meetup in Tokyo 機能概要
MQTT meetup in Tokyo 機能概要
shirou wakayama
 
Ansible for beginners ...?
Ansible for beginners ...?Ansible for beginners ...?
Ansible for beginners ...?
shirou wakayama
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
shirou wakayama
 
Tinkerer for pyfes 201303
Tinkerer for pyfes 201303Tinkerer for pyfes 201303
Tinkerer for pyfes 201303
shirou wakayama
 

More from shirou wakayama (7)

ansible-playbook useful command line options
ansible-playbook useful command line optionsansible-playbook useful command line options
ansible-playbook useful command line options
 
EdisonでMQTT
EdisonでMQTTEdisonでMQTT
EdisonでMQTT
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化
 
MQTT meetup in Tokyo 機能概要
MQTT meetup in Tokyo 機能概要MQTT meetup in Tokyo 機能概要
MQTT meetup in Tokyo 機能概要
 
Ansible for beginners ...?
Ansible for beginners ...?Ansible for beginners ...?
Ansible for beginners ...?
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
 
Tinkerer for pyfes 201303
Tinkerer for pyfes 201303Tinkerer for pyfes 201303
Tinkerer for pyfes 201303
 

Recently uploaded

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 

Ansible meetup201409

  • 2. おまえだれよ? • 若山史郎 @ ツキノワ株式会社 • お仕事募集中です • Twitter ID: r_rudi • 著書 • Ansible: 「入門Ansible」 • Sphinx :「 Sphinxをはじめよう」
  • 3. 今日お話すること • 知っているとちょっと便利なこと • いろいろなな小ネタを用意しました • 全部で7つです。お互いに関連性はありません
  • 5. roles_path (1/7) • roleが散らばって困っていませんか • リポジトリが違う場合など • ansible.cfgに “roles_path” を設定できます roles_path=/opt/roles:../roles ! • “:”で区切って複数個指定できます • “..” など相対パスも使えます
  • 6. roleの検索順序 (1/7) • roleの検索順序 1. 自分のディレクトリの roles 以下 2. 自分のディレクトリ 3. roles_pathを前から探していく ./deploy.yml /inventory /roles/hoge/tasks /hoge/tasks/ ← こっちが先
  • 7. whenの複数条件 (2/7) when: ansible_os_family == "RedHat" ! and mode == "production" • 長すぎ。こう書けます when: - ansible_os_family == "RedHat" - mode == "production"
  • 8. shellで環境変数 (3/7) • “environment” • ちなみにどのモジュールでも使えます ! ! - shell: something.sh environment: PATH: /opt/bin • sourceは使えない。 “.” かbashで実行 - shell: source envfile && something.sh stderr: /bin/sh: 1: source: not found - shell: . envfile && something.sh - shell: source envfile && something.sh executable=/bin/bash
  • 9. 数字として比較 (4/7) • 普通に書くと、文字列での比較となってしまう - shell: cat /var/log/something.log | wc -l register: logline - fail: msg="too long" when: logline.stdout > 300 - shell: cat /var/log/something.log | wc -l register: logline - fail: msg="too long" when: logline.stdout | int > 300
  • 10. バージョンを比較 (4/7) • “3.0.16” などのバージョンを比較できます vars: version: 3.0.16 tasks: - debug: msg="its old!" when: version | version_compare(‘3.0.20’, '<=')
  • 11. 正規表現で比較 (4/7) vars: url: "http://example.com/users/foo/resources/bar" ! tasks: - shell: "msg='パターン 1にマッチ (完全一致)’" when: url | match("http://example.com/users/.*/ resources/.*") ! - debug: "msg='パターン 2にマッチ (部分一致)’" when: url | search("/users/.*/resources/.*")
  • 12. cronモジュール (5/7) • crontabの書き方を忘れたりしませんか? • minute, hour などで指定できます cron: name=“check” minute=30 hour="5,2" job="ls -alh > /dev/null" ! • @reboot なども指定できます cron: name="reboot" special_time=reboot job="ls -lah" ! • AnsibleのDSLを覚えておけばいい
  • 13. local_fact (6/7) • /etc/ansible/facts.d/hosts.fact • 対象ホストにファイルを置くとfactとなる [group] stage=! development role=webserver ! • 使い方 - debug: msg={{ ansible_local.hosts.group.role }}
  • 14. local_fact (6/7) • JSONでも書けます { "group": { ! “role”:"webserver", “stage”: “development” } } ! • 実行権限をつけると、動的に生成できます #!/bin/sh cat <<EOF {"group": { “role”:"webserver", “stage”: “development” } } EOF
  • 15. local_path (6/7) • /etc/ansible/facts.d/じゃない場所を使いたい! • setupモジュールを使う tasks: - setup: fact_path="/home/shirou/tmp/ansible" - debug: msg={{ ansible_local.hosts.group.role }}
  • 16. chatops (7/7) • slack + hubot
  • 17. まとめ 1. role_path 2. when 3. shell 4. 数字として比較 5. cron 6. local_fact 7. hubot + slack • 小ネタを用意しました • 全部ドキュメントに書い てあります • hubotは後でgistを • 今後も便利な機能が増え ていくので乞うご期待