Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Ansible + GitLab で楽に何度もデプロイする話 #ゆるWeb札幌
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kihara, Takuya
PRO
February 15, 2020
Technology
610
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ansible + GitLab で楽に何度もデプロイする話 #ゆるWeb札幌
ゆるWeb勉強会@札幌 #8 (中止)
https://mild-web-sap.connpass.com/event/164107/
勉強会を中止にしたので、資料のみ。
Kihara, Takuya
PRO
February 15, 2020
More Decks by Kihara, Takuya
See All by Kihara, Takuya
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
78
Lockage Introduction v0.9.6
tacck
PRO
0
22
Lockage Introduction v0.9.6 (JA)
tacck
PRO
0
50
ゆるWeb勉強会@札幌 紹介 2026年9月版 #seb_sapporo #ゆるWeb札幌
tacck
PRO
0
58
AWS Blocks の紹介 #AWSAmplifyJP
tacck
PRO
0
81
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
500
ゆるWeb勉強会@札幌 #31 #ゆるWeb札幌
tacck
PRO
0
120
Amplify でも Auth0 をいい感じに使いたい! - Cognito Identity Pool を使った認証情報の連携 #auth0
tacck
PRO
0
140
雑食エンジニアの生きる道〜AI時代のこれから #seb_summit
tacck
PRO
1
270
Other Decks in Technology
See All in Technology
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
0
110
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
2
630
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
1
950
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
290
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
810
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
160
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
1
330
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
350
素人でもできた!AIを使った短編小説創作入門
delhi09
PRO
0
160
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
110
推論基盤と Scale-Up Interconnect の現状と制約から俯瞰する技術動向
markunet
2
580
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
310
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
2
4.1k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
540
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
580
GraphQLとの向き合い方2022年版
quramy
50
15k
Designing for Performance
lara
612
70k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
Ruling the World: When Life Gets Gamed
codingconduct
0
420
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
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ࡳຈ