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のこれまでとこれから
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
上畑圭史(Keiji Uehata)
December 07, 2022
Technology
1.9k
2
Share
ラクスサービスを支えるAnsibleのこれまでとこれから
システムを”楽”に運用したい!〜自動化, CI/CDの道〜 発表資料
上畑圭史(Keiji Uehata)
December 07, 2022
Other Decks in Technology
See All in Technology
Babylon.js Japan Activities (2026/4)
limes2018
0
200
ストライクウィッチーズ2期6話のエイラの行動が許せないのでPjMの観点から何をすべきだったのかを考える
ichimichi
1
310
マルチモーダル非構造データとの闘い
shibuiwilliam
2
310
チームで育てるAI自走環境_20260409
fuktig
0
980
見えない開発現場を、見える投資に変える
rojoudotcom
2
150
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
2.4k
2026-04-02 IBM Bobオンボーディング入門
yutanonaka
0
260
機能・非機能の学びを一つに!Agent Skillsで月間レポート作成始めてみた / Unifying Bug & Infra Insights — Building Monthly Quality Reports with Agent Skills
bun913
5
3.9k
Webアクセシビリティは“もしも”に備える設計
tomokusaba
0
170
解剖"React Native"
hacusk
0
120
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
270
TanStack Start エコシステムの現在地 / TanStack Start Ecosystem 2026
iktakahiro
1
360
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
The Language of Interfaces
destraynor
162
26k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
110
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
A designer walks into a library…
pauljervisheath
211
24k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
480
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
260
Transcript
#RAKUSMeetup ©2022 RAKUS Co., Ltd. ラクスサービスを支える Ansibleの活用 これまでとこ れから 株式会社ラクス
上畑 圭史
#RAKUSMeetup 自己紹介 • ウエハタ ケイジ • 株式会社ラクス インフラ開発部 リードエンジニア •
趣味 「将棋」 息子の将棋教室通いをきっかけに、1年でようやく2級になりました。 目指せ初段!!
#RAKUSMeetup 今回のお話 サーバの構成管理の為に、Ansibleを2018年に導入しました。 導入からの4年間の軌跡やその取り組み内容を紹介します。
#RAKUSMeetup Ansible とは? RedHat社が開発するオープンソースの構成管理ツール [特徴] • YAML記述方式のファイルにサーバやネットワーク機器等の構成情報を書く。その情報 を元にインストールや設定、実行を自動で行う。 • 対象となる環境には専用のエージェントは不要。※サーバの場合は、PythonとSSH接
続環境が必要。 • 様々な機能はモジュール形式によって提供されている(自作も可) • 何度実行しても同じ状態となる冪等性を担保することを意識。 ※シェル系のモジュー ルなど一部担保できないものがある。
#RAKUSMeetup Ansible導入の背景
#RAKUSMeetup 背景 2018年当初ラクスが提供しているサービスのサーバ群の構成情報は管理されていない状態。 ※厳密には管理していたが、完全ではない「部分的な情報の管理」 環境構築方法は。。。 Excelの 設計書・手順書 いにしえ の...Shellスクリ プト
完成!!
#RAKUSMeetup 背景 設計書は陳腐化... 規模が拡大 = 作業コスト・運用リスクは増加 スクリプトは属人化・難読化... 作る時期・人によって違う環境のものも... 破 綻
#RAKUSMeetup Ansible導入の狙い • 「Ansibleのコード」=「現在の状態」の実現 • 構築や改変作業を自動化 [得られる効果] ❏ 陳腐化・属人化排除 ❏
構成情報の一元管理 ❏ 作業コストの低減(時間、教育コスト) ❏ 品質向上
#RAKUSMeetup ChatdealerをAnsible化(2018年)
#RAKUSMeetup ChatdealerをAnsible化(2018年) • Ansible化 ◦ 7〜8種類ある現在のサーバ構成情報を1つのリポジトリに ◦ 構築スクリプトを廃止 ◦ 開発、ステージング、本番のパラメータをそれぞれ管理
◦ 共通実装の統一(OS、ログや監視設定など) • Ansible実行環境を整備 ◦ Ansibleの自動実行 ◦ メンテナンスモードのOn/Off切り替え
#RAKUSMeetup 2019年 Ansible導入促進?
#RAKUSMeetup 2019年 Ansible導入促進? Ansibleの学習コストは他のプログラミング言語と比べても低い ➡記述方式を学べば、構築手順やスクリプトのAnsible化はできる... 各人が独自で実装を進めていった先は??? テンプレートを作ろう 結果: Ansibleコードの属人化・難読化 →
ツールが変わっただけで結果は同じ
#RAKUSMeetup Ansible標準テンプレート化(2019年) ▪Point: 属人化・難読化させない 1. コーディング規約作成(SHOULDとMUSTを定義) あまりガチガチに固めすぎないように配慮が必要
#RAKUSMeetup Ansible標準テンプレート化(2019年) ▪Point: 属人化・難読化させない 2. 分かりやすい記述方法を意識 • 変数名=パラメータ名 • 多くの機能を盛りすぎない
• シェル記述やスクリプトはできるだけ排除し Ansibleのモジュールによる実装に変更
#RAKUSMeetup Ansible標準テンプレート化(2019年) ▪Point: 属人化・難読化させない • 汎用性を意識した実装(ディレクトリ・ファイル名、パラメータ記載場所) ◦ 複製して使いまわせる ◦ 複製後の修正箇所を極力少なく(パラメータ変更のみで実装が終わるのが理想)
#RAKUSMeetup Ansible標準テンプレート化(2019年) 自動化大好きエンジニアLT会 vol.04 https://rakus.connpass.com/event/217909/ 「ラクス共通Ansibleコードテンプレートを作った話」
#RAKUSMeetup Ansible普及期(2020-2021年)
#RAKUSMeetup Ansible普及期(2020-2021年) 標準テンプレートができたことで、各ラクスのサービスでAnsible化が促進 とはいかなかった。
#RAKUSMeetup ▪ハード面(テスト実行環境) 気軽にAnsibleの実行ができる + Ansible実行ターゲット 具体的には。。。 Ansible普及期(2020-2021年) 「多くの人がAnsibleコードを書いていく」のに必要なものを用意 Ansible on
Docker が起動 ステージング 本番 テスト環境 コードをPush
#RAKUSMeetup ▪ハード面(その他) • 構文自動チェック(ansible‐lint, YAML Lint) • 内部テスト・外部テスト実装(ansible‐spec, Behave) •
Ansible実行速度の高速化機能 Ansible普及期(2020-2021年) 「多くの人がAnsibleコードを書いていく」のに必要なものを用意
#RAKUSMeetup ▪ソフト面 標準テンプレート説明ドキュメント Ansible普及期(2020-2021年) • 各roleの機能の説明 • 各パラメータ意味 • 実装例(統一感の為には結構大事)
#RAKUSMeetup ▪ソフト面 標準テンプレート学習環境用意(ハンズオン ドキュメント) Ansible普及期(2020-2021年) アニメーションGit付きの解説 勉強会に参加できないメンバーや後か ら入社した社員の為
#RAKUSMeetup ▪ソフト面(その他) • Ansibleコードレビューの参加 • リリースフロー整備 • Ansible以外の勉強会の開催(DevOps理解、Git、Docker、Jenkins…) Ansible普及期(2020-2021年) 社内システム
徐々にAnsible管理下に
#RAKUSMeetup と後ろを振り返ると • ジョブ管理 関連システムは増えていく... メンバーはまだまだAnsibleの運用だけで手一杯。。。 • DockerによるCI/CD • 自動テスト
#RAKUSMeetup • マジョリティメンバー増加(Ansibleだけじゃなく、周辺機能も) ◦ ドキュメント整備 ◦ ハンズオン開催 ※理解度向上効果が高い ◦ コードレビューの積極参加
まだまだ終わりじゃないぞ(2022年~) • GitOpsによるデプロイ、フローの整備(現行業務フローの置き換え) ◦ 現行リリースフローはステップ数が多く煩雑 • ハード面の充実 ◦ 自動テストOK=リリースOKにしたい ◦ 実行環境の並列化
#RAKUSMeetup まとめ • Ansible化 ◦ 属人化しない仕組み作りが大事(テンプレート化、ルール作り) ◦ 周辺環境の整備(テスト、実行環境等) • 周辺環境が肥大、複雑化しがち
◦ マジョリティメンバーを増やす施策も忘れずに!! ※ドキュメント整備、ハンズオン、フォローアップによる体制作り ◦ 独走禁止!一気に範囲を広げすぎない。
#RAKUSMeetup ご清聴ありがとうございました。