際際滷

際際滷Share a Scribd company logo
岑っていると 
ちょっと宴旋なこと 
飛表 雰隻 @r_rudi
おまえだれよ 
? 飛表雰隻 @ ツキノワ幄塀氏芙 
? お碧並勅鹿嶄です 
? Twitter ID: r_rudi 
? 广 
? Ansible: 仝秘TAnsible々 
? Sphinx :仝 Sphinxをはじめよう々
書晩おすること 
? 岑っているとちょっと宴旋なこと 
? いろいろなな弌ネタを喘吭しました 
? 畠何で7つです。お札いにvB來はありません
匯つ朕 
roles_path 
慕gみ
roles_path (1/7) 
? roleが柊らばって是っていませんか 
? リポジトリが`う栽など 
? ansible.cfgに ^roles_path ̄ をO協できます 
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" 
? Lすぎ。こうけます 
when: 
- ansible_os_family == "RedHat" 
- mode == "production"
shellでh廠篳 (3/7) 
? ^environment ̄ 
? ちなみにどのモジュ`ルでも聞えます 
! 
! 
- shell: something.sh 
environment: 
PATH: /opt/bin 
? sourceは聞えない。 ^. ̄ かbashでg佩 
- 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¨, '<=')
屎ア蹶Fで曳^ (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 ̄ 
} 
} 
! 
? g佩慙泙鬚弔韻襪函啜弔防撹できます 
#!/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を 
? 書瘁も宴旋なC嬬がえ 
ていくので汝うご豚棋

More Related Content

Ansible meetup201409

  • 2. おまえだれよ ? 飛表雰隻 @ ツキノワ幄塀氏芙 ? お碧並勅鹿嶄です ? Twitter ID: r_rudi ? 广 ? Ansible: 仝秘TAnsible々 ? Sphinx :仝 Sphinxをはじめよう々
  • 3. 書晩おすること ? 岑っているとちょっと宴旋なこと ? いろいろなな弌ネタを喘吭しました ? 畠何で7つです。お札いにvB來はありません
  • 5. roles_path (1/7) ? roleが柊らばって是っていませんか ? リポジトリが`う栽など ? ansible.cfgに ^roles_path ̄ をO協できます 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" ? Lすぎ。こうけます when: - ansible_os_family == "RedHat" - mode == "production"
  • 8. shellでh廠篳 (3/7) ? ^environment ̄ ? ちなみにどのモジュ`ルでも聞えます ! ! - shell: something.sh environment: PATH: /opt/bin ? sourceは聞えない。 ^. ̄ かbashでg佩 - 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. 屎ア蹶Fで曳^ (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 ̄ } } ! ? g佩慙泙鬚弔韻襪函啜弔防撹できます #!/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を ? 書瘁も宴旋なC嬬がえ ていくので汝うご豚棋