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
tom-256
April 17, 2019
Technology
10
2.7k
レガシーな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
Tweet
Share
More Decks by tom-256
See All by tom-256
PipeCDを導入してリリースフローを改善した話/How to improve release workflow by pipecd
tom256
0
33
サーバサイドTypeScriptモノレポを半年運用した結果/How to maintain server side typescript monorepo
tom256
0
370
フロントエンドのCIについて/front end ci tips
tom256
0
88
Slack + Cloud Functionsで迅速な障害の初動対応をする/incident management by slack
tom256
0
150
AWSで実現するChatOps〜サーバレスでBlue/Greenデプロイする仕組みと工夫点〜 /chatops deployment
tom256
0
400
GHEとAWSを使用したデプロイ/リリースフローの紹介/introduction-deployflow-aws-and-ghe
tom256
0
140
Other Decks in Technology
See All in Technology
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
160
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
140
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
140
OTFSG勉強会 / Introduction to the History of Delta Lake + Iceberg
databricksjapan
0
120
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
140
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
190
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
140
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
170
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
120
ローカルLLMでファインチューニング
knishioka
0
120
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
470
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
360
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
35
6.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
A designer walks into a library…
pauljervisheath
206
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
A Tale of Four Properties
chriscoyier
159
23k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
KATA
mclloyd
29
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
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ʹد͍ͤͯ͜͏ ɾϓϩμΫτͷϑΣʔζΛݟࣺͯͯΔํੑߟ͑Α͏
͓ΘΓ