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 TowerでCICDの検証をしてみた話
Search
sky_joker
February 13, 2020
Technology
2.6k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ansible TowerでCICDの検証をしてみた話
https://ansible-users.connpass.com/event/162758/
sky_joker
February 13, 2020
More Decks by sky_joker
See All by sky_joker
NetboxとAnsibleを使ってvSphere環境の管理・作業の自動化をしてみよう
sky_joker
0
2k
Ansible Collections概要
sky_joker
1
1.3k
Molecule VMware Driverの紹介
sky_joker
0
1.6k
VMwareとAnsible_Towerで実現する自動化2.0の世界
sky_joker
4
1.3k
Ansible VMwareモジュールの今までとこれから
sky_joker
3
2.9k
vCenterシミュレーターを使ってCIをやってみよう.pdf
sky_joker
6
3k
pyvmomiで始めるvSphere_API生活_初級編_.pdf
sky_joker
1
4.9k
NSXのAnsibleモジュールについて調べてみた
sky_joker
2
780
VMwareで作ったIaaSにAnsible Towerを導入した話
sky_joker
4
2.1k
Other Decks in Technology
See All in Technology
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
140
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
130
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
120
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
260
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
600
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
660
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.8k
Tab5をRubyで動くパソコンにする
kishima
2
330
Reactの設計論
uhyo
14
7.9k
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
3
990
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
730
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
Mind Mapping
helmedeiros
1
350
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Transcript
Ansible TowerでCICDの検証を やってみた話 Ansible ディベロッパー部 2020.02
今日話す事 01. 背景 02. 課題 03. 検証、デモ(動画) 04. まとめ、今後の課題
自己紹介 3 --- - 名前: 大嶋 健容 Twitter: @sky_jokerxx GitHub:
sky-joker 仕事: 自動化エンジニア コントリビュート: ansible: - Zabbix - VMware - etc 今欲しいもの: - 第10世代 NUC - AMD Ryzen 3990X @sky_jokerxx 得意: - ansible - VMware(vSphere, NSX) - vSphere/NSX APIを使った開発 - OSSとVMwareの組み合わせ 興味: - 自動化 - コンテナ(k8s, OpenShift) - CICD 趣味: - 自宅ラックで検証 - Ansibleモジュール開発 ナナチスキ
背景 4
そもそものきっかけ 5 今までにいくつかのクラウドサービスの立ち上げから設計、構築、運用、自動 化というのを一通りやってきたなかで、Ansible Towerを使ったCICDが必要と感 じたきっかけは… からでした! サービスの拡大による運用申請が増えたこと
6 サービス立ち上げ時 サービスが拡大してくると しばらく時間が空くので開発や振り返りや自身のサービ ス拡張に時間が充てられる 了解〜 Aサービスの申請よろしく! 了解〜 コード修正、push、launch Bサービスの申請よろしく!
Aサービスの申請よろしく! 了解〜 Bサービスの申請よろしく! Cサービスの申請よろしく! あ、Aサービスの申請追加で! あ、Bサービスの申請追加で! ふえぇ〜〜
7 まぁ、一つのサービス なら よし、終わったから 自分の仕事しよう Aサービスの申請お願い Bサービスの申請お願い またか つらたん Cサービスの申請お願い
本当の仕事 自分の仕事 終わった Aサービスの申請お願い Bサービスの申請お願い 終わったから今度こそ 自分の仕事やるぞ 申請の悪循環 またか
8 さて、どうしたものか
9 ∧∧∧∧∧ ∧∧∧∧∧ ∧ ∧ ∧ ∧∧ ∧ ∧ ∧
∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧∧∧ 自動化2.0 の予感!! ボタン ボタン ボタン 自動化ボタン作るよ! 連携するよ! Aサービスの申請よろしく! 自動化ボタンあるから 自分でやってね! 自分の仕事に集中 するよ! 担当がいなくてもボタン があれば誰でもできる から帰るよ! スピードUP! Ansible Towerの UIを使うよ!
課題 10
自動化2.0の課題 11 • 誰でも出来るように操作はシンプルにし入力パラメーター標準化をしたい • 操作範囲や影響範囲は最小限にしたい • 今まで通りCIをやりたい(心理的安全性を確保したい) • Gitでパラメーターを管理しているので変更後マージしたい
Ansible TowerのWebUIで操作 Ansible Towerのロールで制御、SURVEYの使用 moleculeを使ったPlaybook(テンプレート)を作成して ワークフローテンプレートに組み込む Git更新用のPlaybook(テンプレート)を作成してワーク フローテンプレートに組み込む
検証 12
検証環境コンポーネント 13 項目 コンポーネント バージョン 備考 基盤 ESXi 6.7.0 vCenter
6.7.0 自動化ツール Ansible Tower 3.6.2 Ansible 2.9.3 venvを使用 テスト molecule 2.22 M/W bind 9.11.4-9.P2 今回は自動化はbindの設定を対象にしてみます
操作性のシンプルと入力パラメーターの標準化 14 レコード追加 add_records: - name: www rdclass: IN rdtype:
A rdata: 192.168.0.1 レコード更新 update_records: - name: www rdclass: IN rdtype: A rdata: 192.168.0.1 レコード削除 delete_records: - name: www rdclass: IN rdtype: A rdata: 192.168.0.1 add_records - name: www rdclass: IN rdtype: A rdata: 192.168.0.1 : ボタンを押す
影響範囲の制御(SURVEY) 15 番号 説明 操作対象 ① 設定を変更する必要なnamed.confのみ選択可能に した × ②
設定を変更する必要なゾーンのみ選択可能にした ◦ ③ Gitにpushする時のパスワード(標準埋込) × ④ 使用するbindのロールを入力(標準埋込) × ⑤ bind設定を保存するリポジトリ名(標準埋込) × ⑥ コミットメッセージを入力する ◦ ① ② ③ ④ ⑤ ⑥
moleculeで躓いた課題 16 検証開始 _人人人人人人人人人人人人人人人人人_ > ドライバーが無い事による突然の死 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
無いなら作ればええやん! 17 その前にPR見とこう 作るぞ!! あるやん! コメントを読み進めると 既にドライバーが沢山あるし、ほとんどの人は VagrantやDockerで済むし 需要あるか分からない コメント
ちーん
標準ドライバーを使わずテスト用インスタンスを 生成する方法 18 • Delegatedドライバーを使う • 標準ドライバーで対応出来ない場合、Delegatedドライバを使う 事でテスト用インスタンスを自由に作ることができます このドライバを使う場合は以下のPlaybookを作成する必要があ ります
• create.yml • テスト用インスタンスを作成するPlaybook • destroy.yml • 作成したテスト用インスタンスを削除するPlaybook
作成したワークフロー 19 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新
BIND設定正常性テストの処理 20 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config CI TEST
更新 設定 • 構文チェック(yamllint) (略) • instance作成(create) • 事前準備(prepare) • 新設定の流し込み(converge) (略) • Instance削除(destroy) moleculeテスト項目 設定
BIND設定正常性テストの処理 21 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config CI TEST
• 構文チェック(yamllint) (略) • instance作成(create) • 事前準備(prepare) • 新設定の流し込み(converge) (略) • Instance削除(destroy) moleculeテスト項目 ESXi template instance リンククローン 更新 設定 設定 templateのシステムディスクを共有する リンククローンを使うことでinstance作成 の高速化を図る Read Only 差分のみ システム ディスク
BIND設定正常性テストの処理 22 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config CI TEST
• 構文チェック(yamllint) (略) • instance作成(create) • 事前準備(prepare) • 新設定の流し込み(converge) (略) • Instance削除(destroy) moleculeテスト項目 ESXi instance 更新 設定 設定 • bind-roleでbindの設定を入れる • bindの起動 設定
BIND設定正常性テストの処理 23 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config CI TEST
• 構文チェック(yamllint) (略) • instance作成(create) • 事前準備(prepare) • 新設定の流し込み(converge) (略) • Instance削除(destroy) moleculeテスト項目 ESXi instance 更新 設定 設定 • bind-roleでbindの更新設定を入れる • bindのリロード 設定 更新 設定
BIND設定正常性テストの処理 24 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config CI TEST
• 構文チェック(yamllint) (略) • instance作成(create) • 事前準備(prepare) • 新設定の流し込み(converge) (略) • Instance削除(destroy) moleculeテスト項目 ESXi instance 更新 設定 設定 • 問題なく設定が更新できたらinstance を削除する
BINDレコード更新の処理 25 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config main ESXi
• 本番環境にbind-roleでbindの更新設 定を入れる • bindのリロード bind 設定 設定 更新 設定
BINDレコード更新の処理 26 開始 BIND設定正常性テスト BINDレコード更新 リポジトリの設定ファイル更新 bind-role bind-config 更新 設定
更新 設定 up date 設定
デモ 27 https://vimeo.com/390750827
まとめ、今後の課題 28
まとめ 29 他の人でも対応できるように意識する(自動化2.0など) サービスが拡大することを意識して自動化する必要がある ただし、ワークフローを作るのは結構手間なので既存のCIツールの置き換えに はならないと思う Ansible Tower(AWX)を使えば簡易CICDの実装ができそう Ansible Tower(AWX)で操作をシンプルにすることができた
操作できる範囲や入力内容を最小限にしてシンプルにすることで初めての人 でも対応できそう
今後の課題 30 今回は設定ファイルの構文チェックとプロセスのリロードまでしか確認して いないため、反映後のレコードチェック(digなどで)が必要があると思う CIや本番への設定反映後のテストを作る必要 本番に設定を反映する時に失敗することも考慮する必要があるため、失敗し た時の自動切り戻しもワークフローに入れる必要があると思う 設定を反映した後に失敗した時の自動切り戻しが必要
Thank you For listening https://twitter.com/sky_jokerxx https://qiita.com/sky_jokerxx https://sky-joker.tech https://github.com/sky-joker @sky_jokerxx