Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
レガシーなAnsibleを改善していくための方針/How to improve the leg...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tom-256
April 17, 2019
Technology
2.7k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レガシーなAnsibleを改善していくための方針/How to improve the legacy Ansible
Ansible Night in Tokyo 2019.04の発表資料
https://ansible-users.connpass.com/event/125609/
tom-256
April 17, 2019
More Decks by tom-256
See All by tom-256
PipeCDを導入してリリースフローを改善した話/How to improve release workflow by pipecd
tom256
0
58
サーバサイドTypeScriptモノレポを半年運用した結果/How to maintain server side typescript monorepo
tom256
0
460
フロントエンドのCIについて/front end ci tips
tom256
0
100
Slack + Cloud Functionsで迅速な障害の初動対応をする/incident management by slack
tom256
0
180
AWSで実現するChatOps〜サーバレスでBlue/Greenデプロイする仕組みと工夫点〜 /chatops deployment
tom256
0
420
GHEとAWSを使用したデプロイ/リリースフローの紹介/introduction-deployflow-aws-and-ghe
tom256
0
160
Other Decks in Technology
See All in Technology
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
360
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
120
Jitera Company Deck
jitera
0
270
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.3k
[Droidcon Orlando '26] The Android Lens: Applying Mobile Forensics to AI Performance
amanda_hinchman
1
110
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
140
生成 AI 時代にいま一度「問い合わせ」について考えてみる
kazzpapa3
1
130
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
420
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
480
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
4
1.2k
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
350
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Marketing to machines
jonoalderson
1
5.6k
Why Our Code Smells
bkeepers
PRO
340
58k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Design in an AI World
tapps
1
270
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
210
Transcript
ϨΨγʔͳ"OTJCMFΛ վળ͍ͯͨ͘͠Ίͷํ "OTJCMF/JHIUJO5PLZP
XIPBNJ 5XJUUFSUB 8FCۀք όοΫΤϯυΤϯδχΞ GSPNۚࢢ
Զͷʢࢲͷʣ"OTJCMFܦݧஊ
ϨΨγʔͳ"OTJCMFΛͲ͏͍͔ͬͯͯ͘͠ʁ
ͳ͢͜ͱ
ɾഎܠ ɾΊ͟͢ͱ͜Ζ ɾϦϑΝΫλ·ͰͷಓͷΓ ɾϦϑΝΫλํ ɾ·ͱΊ
എܠ
ߏਤ ΦϯϓϨ IPTUT QSETUHEFW $POUSPM.BDIJOF .BOBHFNFOU/PEF TTI
ɾαʔόʹखಈͰมߋΛՃ͑ͯ͋Δ ɾ݅Λ͑ΔDIBOHFE ɾ$IFDLNPEF͕GBJMFE͢Δ ɾҎલ͍࣮ͭߦ͞Ε͔ͨఆ͔Ͱͳ͍ ɾTUHͱQSEͰࠩҟ͕͋Δ ɾWFSTJPO य़࣌
Ί͟͢ͱ͜Ζ
Ί͟͢ͱ͜Ζ QMBZCPPLͱαʔόͷ͕ࠩͳ͍ ႈੑ͕୲อ͞Ε͍ͯΔ ճҎ߱DIBOHFE ɹ͘͠ɺDIBOHFE͕ආ͚ΒΕͳ͍߹ OBNFͳͲͰͦΕ͕Θ͔ΔΑ͏ʹͳ͍ͬͯΔ
Ί͟͢ͱ͜Ζ ఆظతʹ࣮ߦ͞Ε͍ͯΔ ࣮ߦཤྺ͕ཧ͞Ε͍ͯΔ
ϦϑΝΫλ·ͰͷಓͷΓ
Քಇ͍ͯ͠ΔαʔόͱͷࠩΛͳ͘͢ αʔόͷίϐʔΛͱͬͯݕূڥΛ࡞Δ ݱࡏՔಇ͍ͯ͠ΔαʔόͷઃఆΛίʔυʹө͢Δ "OTJCMFΛ࣮ߦݕূ͢Δ ͳ͍͜ͱ͕֬ೝͰ͖ͨΒຊ൪αʔόͰ࣮ߦ͢Δ
Քಇ͍ͯ͠ΔαʔόͱͷࠩΛͳ͘͢ ɾҰ୴݅ͷDIBOHFEແࢹ ɾ$IFDLNPEF͕GBJMFE͢ΔͷΛमਖ਼
"OTJCMFͷόʔδϣϯΛ্͛Δ ɾ࠷৽ͷ҆ఆ൛ʹ্͛Δ ɾಈ࡞ݕূΛ͢Δ
͜ΕͰαʔόͱQMBZCPPL͕ಉ͡ঢ়ଶʹͳͬͨ ࣍ํΛܾΊΔ
ϦϑΝΫλํ
ͳΔ͘UBTLͷத৮Βͣʹ֎ງΛຒΊ͍ͯ͘
·ͣ$*ڥΛ͑Δ ɾ"89ͷಋೖ ɾ$*ͷಋೖ
"89ͷಋೖ ɾ࣮ߦཤྺ͕ͬͯͳ͍ ɾ"OTJCMFͷϗετʹ44)ͯ͠࡞ۀͨ͘͠ͳ͍ &$Ͱ"OTJCMF"89ΛཱͯΔ &$  &*1ͷ࠷খݶߏͰ࡞Δ
"89ͷಋೖ ެࣜʹ$'OςϯϓϨʔτ͕͋Δ͕ɺࠓճͷέʔεʹରͯ͠ ͳͷͰݟૹΓ https://aws.amazon.com/jp/quickstart/architecture/awx/
$POUSPM.BDIJOF "89 .BOBHFNFOU/PEF
$*ͷಋೖ $JSDMF$*&OUFSQSJTFͰύΠϓϥΠϯ࡞ (JU)VC"DUJPOT(JU)VC&OUFSQSJTFʹରԠͯ͠ͳ͍ͨΊ ݟૹΓ
$*ͷಋೖ Γ͍ͨ͜ͱ ϦϞʔτCSBODIʹQVTI ͍ܰॲཧ ɾ੩తղੳ TZOUBYDIFDL BOTJCMFMJOU ɾςετ Ϣχοτςετ
QVTISFNPUFCSBODI BOTJCMFQMBZCPPL ɾTZOUBYDIFDL ɾBOTJCMFMJOU ɾVOJUUFTU
$*ͷಋೖ Γ͍ͨ͜ͱ ඇಉظPSεέδϡʔϧ࣮ߦ ॏ͍ॲཧ ɾႈੑͷݕূ ɾςετ ౷߹ςετ
$POUSPM.BDIJOF "89 .BOBHFNFOU/PEF 13NBSHF UPXFSDMJ ݕূ༻αʔό ɾEFQMPZ ɾ*OUFHSBUJPOUFTU
͜ΕͰݕূαΠΫϧ͕ͬͨ ͔͜͜ΒϦϑΝΫλϦϯά
ɾΘΕ͍ͯͳ͍SPMFͷআ ɾϢχοτςετͷಋೖ ɾϩʔΧϧݕূڥΛ࡞Δ ɾσΟϨΫτϦߏΛϕετϓϥΫςΟεʹ ɾSPMF୯ҐͰλά͚ ɾ࣮ߦ࣌ؒͷܭଌ ɾύϑΥʔϚϯενϡʔχϯά ɾႈੑͷमਖ਼
ΘΕ͍ͯͳ͍SPMFΛআ ߏਤΛݩʹલऀʹಓʹ֬ೝ
ϢχοτςετͷՃ ɾϦϑΝΫλ͍ͯ͘͠ࡍʹ࠷ݶͷηʔϑωοτΛઃ͚͍ͨ 1"5)ɺϓϩηεͷঢ়ଶɺϙʔτͷ֬ೝ "OTJCMFͷUBTLͱͯ͠ϢχοτςετՃ ɹUFTUJOGSBֶशίετͷ͔ΒݟૹΓ
ϩʔΧϧݕূڥΛ࡞Δ ɾUBTLʹมߋΛՃ͑ͨͱ͖ɺ ɹຖճϦϞʔταʔόʹରͯ͠ݕূ͢Δͷେม ɾႈੑ֬ೝͷͨΊ࡞ͬͯյͤΔڥ͕΄͍͠
ϩʔΧϧݕূڥΛ࡞Δ ݕূ༻%PDLFSڥΛ༻ҙ͢Δ ɾ$*Ͱ༻͢Δ͜ͱߟྀ͠ɺ7BHSBOUͰͳ͘%PDLFSΛબ ɾύεϫʔυ͋ΓͩͱTVEPͰ͖ͳ͍όά͕͋Δ https://github.com/ansible/ansible/issues/31759 ɾطଘΦϯϓϨαʔόͱͷࠩҟߟྀͷඞཁ͋Γ
σΟϨΫτϦߏΛϕετϓϥΫςΟεʹ ɾSPMFTσΟϨΫτϦ͕ͳ͍ IPHF@SPMFTDFOUPTʜͷΑ͏ͳσΟϨΫτϦߏ ɾSPMF͕̎ͭͷσΟϨΫτϦʹผΕ͍ͯΔ ɾ૬ରύεࢦఆͩΒ͚
σΟϨΫτϦߏΛϕετϓϥΫςΟεʹ https://docs.ansible.com/ansible/latest/user_guide/ playbooks_best_practices.html#alternative-directory-layout HSPVQIPTU͝ͱʹม͕ҟͳ͍ͬͯͨͷͰɺ"MUFSOBUJWF %JSFDUPSZ-BZPVUΛ༻
σΟϨΫτϦߏΛϕετϓϥΫςΟεʹ SPMFͷ૬ରύεࢦఆ͕ͳ͘ͳͬͨ QMBZCPPL࣮ߦ࣌ͷίϚϯυ͘ͳͬͨ QMBZCPPL͕ڥ͝ͱʹผΕ͓ͯΓཧ͕େม͕ͩ·ͱΊΔͷ ϘϦϡʔϜ͕େ͖͍ͷͰޙճ͠ʜ
SPMF୯ҐͰλά͚ ్தͰGBJMFEͨ͠ͱ͖ʹGBJMFEͨ͠SPMF͔Β࣮ࢪ͍ͨ͠ SPMF୯ҐͰλάΛ͚ͭΔ UBHTIPHF BOTJCMFQMBZCPPLTJUFZNMUBHTIPHF
࣮ߦ࣌ؒͷܭଌ ႈੑΛ͢ࡍʹɺ͕͔͔͍࣌ؒͬͯΔͷ͔Β͍ͨ͠ $BMMCBDL1MVHJOTͷQSPpMF@UBTLTΛ͏ ansible.cfg [defaults] callback_whitelist = profile_tasks
ύϑΥʔϚϯενϡʔχϯά ެࣜ#MPHΛࢀরͯ͠ઃఆ͢Δ IUUQTXXXBOTJCMFDPNCMPHBOTJCMFQFSGPSNBODF UVOJOHBOTJCMFDGH ansible.cfg [defaults] pipelining = True ssh_args
= -o ControlMaster=auto -o ControlPersist=300s
ႈੑͷमਖ਼ ࣌ؒͷ͔͔Δͷ͔Βमਖ਼͍ͯ͘͠ ຖճιʔεͷ%-ͱίϯύΠϧΛ͍ͯ͠ΔUBTLͳͲ ɾTIFMM DPNNBOENPEVMFΛସͰ͖ͳ͍͔ݕ౼͢Δ ɾXIFOTUBUFNFOUΛ༻͢Δ
·ͱΊ
ϨΨγʔͳ"OTJCMFͱૺ۰ͨ͠ͱ͖ ɾ$*ڥΛͭͬͯ͘ΛݻΊΑ͏ ɾςετΛॻ͍ͯ֎ງΛຒΊΑ͏ ɾஈ֊తʹվળ͠Α͏ ɾܭଌɾվળαΠΫϧΛճͦ͏ ɾͳΔ͘#FTU1SBDUJDFTʹد͍ͤͯ͜͏ ɾϓϩμΫτͷϑΣʔζΛݟࣺͯͯΔํੑߟ͑Α͏
͓ΘΓ