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
16
サーバサイドTypeScriptモノレポを半年運用した結果/How to maintain server side typescript monorepo
tom256
0
310
フロントエンドのCIについて/front end ci tips
tom256
0
83
Slack + Cloud Functionsで迅速な障害の初動対応をする/incident management by slack
tom256
0
140
AWSで実現するChatOps〜サーバレスでBlue/Greenデプロイする仕組みと工夫点〜 /chatops deployment
tom256
0
390
GHEとAWSを使用したデプロイ/リリースフローの紹介/introduction-deployflow-aws-and-ghe
tom256
0
130
Other Decks in Technology
See All in Technology
Classmethod_regrowth_2024_tokyo_security_identity_governance_summary
hiashisan
0
790
My Generation 年配者がこの先生きのこるには (Developers CAREER Boost 2024 Edition)/My Generation How elder engineers can survive
kwappa
3
390
Explain EXPLAIN
keiko713
10
2.9k
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
0
280
振る舞い駆動開発(BDD)における、テスト自動化の前に大切にしていること #stac2024 / BDD formulation
nihonbuson
3
1.1k
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
0
160
Ruby on Browser - RubyWorld Conference 2024
tmtms
1
120
属人化したE2E自動テストを ひも解く
honamin09
1
120
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
120
Reliability Engineering at Studist
katsuhisa91
PRO
0
130
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
outsider
0
570
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
1
150
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Gamification - CAS2011
davidbonilla
80
5.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
How to Think Like a Performance Engineer
csswizardry
21
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
490
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Making Projects Easy
brettharned
116
5.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
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ʹد͍ͤͯ͜͏ ɾϓϩμΫτͷϑΣʔζΛݟࣺͯͯΔํੑߟ͑Α͏
͓ΘΓ