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 + GitLab で楽に何度もデプロイする話 #ゆるWeb札幌
Search
Kihara, Takuya
PRO
February 15, 2020
Technology
2
560
Ansible + GitLab で楽に何度もデプロイする話 #ゆるWeb札幌
ゆるWeb勉強会@札幌 #8 (中止)
https://mild-web-sap.connpass.com/event/164107/
勉強会を中止にしたので、資料のみ。
Kihara, Takuya
PRO
February 15, 2020
Tweet
Share
More Decks by Kihara, Takuya
See All by Kihara, Takuya
雑食エンジニアの生きる道〜AI時代のこれから #seb_summit
tacck
PRO
1
67
それでは聞いてください「Impeller導入に失敗しました」 #FlutterKaigi #skia
tacck
PRO
0
410
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
580
Amazon Q Developer CLI でゲームと Amplify アプリを作ってみた #ゆるWeb札幌
tacck
PRO
0
55
ゆるWeb勉強会@札幌 #30 #ゆるWeb札幌
tacck
PRO
0
33
Flutter を始めよう! - Flutter の開発現場から
tacck
PRO
0
180
GitHub Actions で Flutter アプリの CI/CD をやってます #ゆるWeb札幌
tacck
PRO
0
430
ゆるWeb勉強会@札幌 #29 #ゆるWeb札幌
tacck
PRO
0
180
読んで学ぶ Amplify Gen2 / Amplify と CDK の関係を紐解く #jawsug_tokyo
tacck
PRO
1
560
Other Decks in Technology
See All in Technology
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
2
220
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
190
[E2]CCoEはAI指揮官へ。Bedrock×MCPで構築するコスト・セキュリティ自律運用基盤
taku1418
0
130
[JAWS DAYS 2026]私の AWS DevOps Agent 推しポイント
furuton
0
140
聲の形にみるアクセシビリティ
tomokusaba
0
170
作りっぱなしで終わらせない! 価値を出し続ける AI エージェントのための「信頼性」設計 / Designing Reliability for AI Agents that Deliver Continuous Value
aoto
PRO
2
280
モブプログラミング再入門 ー 基本から見直す、AI時代のチーム開発の選択肢 ー / A Re-introduction of Mob Programming
takaking22
5
1.3k
親子 or ペアで Mashup for the Future! しゃべって楽しむ 初手AI駆動でものづくり体験
hiroramos4
PRO
0
110
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.2k
OCI Security サービス 概要
oracle4engineer
PRO
2
13k
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
290
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.6k
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
120
Google's AI Overviews - The New Search
badams
0
930
エンジニアに許された特別な時間の終わり
watany
106
240k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
Speed Design
sergeychernyshev
33
1.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
970
A Modern Web Designer's Workflow
chriscoyier
698
190k
The SEO Collaboration Effect
kristinabergwall1
0
390
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Leo the Paperboy
mayatellez
4
1.5k
Evolving SEO for Evolving Search Engines
ryanjones
0
150
Designing Powerful Visuals for Engaging Learning
tmiket
0
270
Transcript
גࣜձࣾϊʔεσΟςʔϧ ։ൃ%JWJTJPOٕज़ਪਐ(SPVQ UBDDLݪ !UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ "OTJCMF (JU-BCͰ ָʹԿσϓϩΠ͢Δ ݄
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • ໊લ ݪ / @tacck •
ॴଐ גࣜձࣾϊʔεσΟςʔϧ ։ൃDivision ٕज़ਪਐGroup / Leader • ओ࠵ • ΏΔWebษڧձ@ࡳຈ • εϚʔτεϐʔΧʔͰ༡΅͏ձ@ࡳຈ • ͖ͳϑΟΪϡΞεέʔτͷٕ εϓϨουɾΠʔάϧ ୭ PHP Conference Hokkaido 2019
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • Ansible • GitLab CI/CD • ࿈ܞͯ͠ԿΛ͔ͬͨ
ࠓ͢͜ͱ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ ͦͦ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • ࣾͷҊ݅ͰɺαʔόʔҠ͕ඞཁͩͬͨɻ • খنͷอक • ͋Δاۀ͚εϚʔτϑΥϯΞϓϦͷ ༻αʔό
(ΦϯϓϨ) • ࣾͷϚγϯཧʹ͍ɺAWS Lightsail Ҡɻ • ϑΝΠϧͷஔɺ֬ೝ߲ͳͲ͢Ͱʹݻ·͍ͬͯΔͷͰɺ εϜʔζʹ࡞ۀ͢ΔͨΊɻ ͦͦ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • Ҋ݅ಛ༗ͷߏͳͲɺʮҰճʯΕجຊऴΘΓɻ → ࣗಈԽͳͲ͢ΔίετΛ͑ͳ͍ɻ • ͱݴ͍ͭͭɺ͜͏͍͏খنҊ݅ ʮ୲ऀʯͷೖΕସΘΓ͕ൃੜ͍͢͠ɻ
(ͦͷ࣌ʹରԠͰ͖Δਓ͕ରԠ͢ΔɺɺͳͲɻ) ͱ͍͑
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • Ansible ʹΑΔΠϯϑϥͷίʔυԽ (IaaC) • GitLab CI/CD
ʹΑΔσϓϩΠͷࣗಈԽ (DevOps) • ࠓޙΛݟਾ͓͖͔͑ͯͬͯͨͬͨɻ • ίʔυԽ͓ͯ͘͠ͱࣾͷݟల։͍͢͠ͷͰɺ ৭ʑͱʹཱͭɻ ͦͷͨΊ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ "OTJCMFͱ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ "OTJCMF https://www.ansible.com/
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ "OTJCMFͷಛ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • Python • ΤʔδΣϯτϨε • ૢ࡞ରʹɺಛผͳԿ͔ΛೖΕͳͯ͘ྑ͍ɻ
( SSH ͱ Python ͕͋Εྑ͍ɻ) • YAML • ઃఆYAMLͰهड़Մೳɻ • ઃఆͷه๏ͦͷͷͷशಘқ͍ɻ (͍͍ͨػೳ͝ͱʹ֮͑Δ͜ͱɺͪΖΜ͋Γ·͢ɻ) "OTJCMFͷಛ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • Ϟδϡʔϧ • ϞδϡʔϧํࣜͰɺػೳ֦ு͞Ε͍ͯΔɻ • ඞཁͳΒɺࣗͰ࡞Մೳɻ •
ຊମ Python ͕ͩɺ Ϟδϡʔϧ Python ͡Όͳͯ͘OKɻ "OTJCMFͷಛ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • ႈੑ • ʮԿ࣮ߦͯ͠ಉ͡ঢ়ଶʹͳΔʯ͜ͱΛαϙʔτɻ • ͨͩ͠ɺϞδϡʔϧͷ࣮࣍ୈɻ •
ϑΝΠϧஔαʔϏεΠϯετʔϧͱ͍ͬͨͷɺ جຊతʹαϙʔτ͞Ε͍ͯΔɻ • ʮίϚϯυ࣮ߦʯܥͷϞδϡʔϧɺ αϙʔτ͞Ε͍ͯͳ͍Մೳੑ͕͋ΔͷͰҙɻ (Ansible ͔ΒݟͯอূͰ͖ͳ͍ͷͰɻ) "OTJCMFͷಛ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ "OTJCMFͷྺ࢙
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • 2012ʹ “Ansible, Inc.” ͕։ൃ։࢝ɻ • 2013ʹ
ࢲ͍࢝Ίͨ (Β͍͠) ɻ https://qiita.com/tacck/items/e3669b94e6a8066ce642 • ͜ͷ࣌ظߏཧπʔϧͷོظɻ • “Chef” ͕ڧ͔ͬͨهԱɻ (Ruby) • 2015ʹ Red Hat ࣾʹΑΓങऩɻ • ͪͳΈʹɺ Red Hat ࣾ 2018ʹ IBM ࣾʹΑΓങऩɻ "OTJCMFͷྺ࢙
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ "OTJCMFઃఆͷجຊ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • ରͱͳΔϗετͷใ (Inventory) • INIܗࣜ or YAMLܗࣜ
(ൺֱత࠷ۙରԠ͞Εͨ) • աڈͷใΛάάΔͱɺINIܗࣜͷใ͕ͨ͘͞Μɻ • ૢ࡞༰ (Playbook) • ػೳ୯ҐͰׂ͢Δ Roles ܗࣜͰॻ͘ͷ͕Ұൠతɻ "OTJCMFઃఆͷجຊ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ *OWFOUPSZ [web] 192.168.100.1 [web:vars] ansible_port=22 ansible_user=centos ansible_ssh_private_key_file=hosts/testing/web_testing.pem
[all:vars] stage=testing
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ 1MBZCPPL NBJOZNM --- - hosts: all become:
yes vars_files: - "vars/{{ stage }}.yml" roles: - setups - file_upload
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ 1MBZCPPL SPMFTTFUVQTUBTLTNBJOZNM --- - name: set timezon
Asia/Tokyo shell: timedatectl set-timezone Asia/Tokyo - name: install httpd yum: name: httpd state: latest - name: enable httpd systemd: name: httpd enabled: yes - name: restart httpd systemd: name: httpd state: restarted
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ 1MBZCPPL SPMFTpMF@VQMPBEUBTLTNBJOZNM --- - name: upload index.html
file template: src: index.html.j2 dest: "/var/www/html/index.html"
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ (JU-BC$*$%ͱ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • GitHub Έ͍ͨͳ Git Repository αʔϏεɻ •
ͦͷதͷػೳͱͯ͠ɺ “CI/CD” ͕͋Δɻ • ϦϙδτϦʹ͋ΔίʔυΛͬͯɺ ৭ʑ͍͍ͬͯΑ! ͱ͍͏αʔϏεɻ (JU-BC
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • ઃఆΛ YAML Ͱهड़ɻ • ίʔυͷνΣοΫɺϑϩϯτΤϯυͷϏϧυɺ αʔόʔͷσϓϩΠͳͲͳͲΛهड़Մೳɻ
• ઃఆهड़ޙɺ git push ͢ΔͨͼʹࣗಈͰ࣮ߦ͞ΕΔɻ • खಈͰͷ࣮ߦɾ࠶࣮ߦՄೳɻ (JU-BC$*$%
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ (JU-BC$*$% HJUMBCDJZNMൈਮ stages: - deploy - testing
.deploy_job: &deploy_job stage: deploy image: cytopia/ansible:2.9-tools script: - ansible-playbook -i hosts/${APP_ENV}/inventory main.yml deploy testing: <<: *deploy_job variables: APP_ENV: testing before_script: - chmod 755 . - cat $SSH_KEY_PEM > hosts/testing/web_testing.pem - chmod 600 hosts/testing/web_testing.pem
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ σϞ -JHIUTBJMͰαʔό४උ *OWFOUPSZʹ*1ࢦఆ (JU-BC$*$%ͰσϓϩΠ IUUQTHJUIVCDPNUBDDLTBNQMFBOTJCMFNJMEXFCTBQ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ ·ͱΊ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • Ansible ΛͬͯΠϯϑϥ (αʔόͷߏ) ΛίʔυԽɻ • ίʔυʹͳ͍ͬͯΕɺσϓϩΠࣗಈԽՄೳɻ
(GitLab CI/CD) • σϓϩΠࣗಈԽ͞Ε͍ͯΕɺ ͙͢ʹ҆ఆͨ͠ڥΛखʹೖΕΒΕΔ!! • ςετͩͬͯॻ͚ͪΌ͏!!! • ಈ͘ͷΛఏࣔͰ͖ΔͷͰɺਓʹ͍͑͢ɻ ·ͱΊ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ FOE
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ ࡳຈͷΠϯϑϥɾΫϥυܥ ษڧձͷҊ ൺֱత׆ಈ͍ͯ͠Δͷ ࢲ͕ิͰ͖ͨͷ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • https://jawsug-sapporo.doorkeeper.jp/events/102248 • ࡾʙ࢛ϲ݄ʹҰճఔ • ࣍ճ: 20202݄21(ۚ)
+"846(ࡳຈ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • https://sapporo-aws.connpass.com/event/163725/ • ࡾʙ࢛ϲ݄ʹҰճఔ 4BQQPSPBXT
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • https://sapporoazuremok2.connpass.com/event/154302/ • ຖ݄Ұճ • ࣍ճ: 20202݄22
() ࡳຈ"[VSF͘͘ձ
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • https://sapporo-beginner-kubernetes.connpass.com/event/ 161411/ • ࡾϲ݄ʹҰճఔ ,VCFSOFUFT4BQQPSPGPS#FHJOOFST
!UBDDL ΏΔ8FCษڧձ!ࡳຈ ΏΔ8FCࡳຈ • https://ansible-users.connpass.com/event/159174/ • ·ͩҰճͰ͕͢ɺࠓճͬͨͷͰɻ • ࢲࢀՃͯ͠LT͠·ͨ͠ɻ "OTJCMF͘͘ձ
αʔόฤ JOࡳຈ