SlideShare a Scribd company logo
1 of 11
Download to read offline
チームでPlaybook開発する時の
心構え/仕組みづくり
~俺のAnsibleがこんなにエラーを吐くわけがない~
jir01030
Ansible Night 2021.2.10
自己紹介
• jir01030
• エンプラ界隈でAnsible導入のご支援
• 得意な自動化領域
• Windows
• VMWare
• AWS
お伝えすること
• 大規模システムをPlaybook化
• 複数のメンバーで開発
• メンバーのスキルレベルも異なり、所属している会社も違う
• そんな案件での
• 反省点
• もうちょっとこうやってやればよかった
• 仕組みで解決したところ
(運用の話じゃなくてゴメンナサイ・・・・)
背景
• お付き合いのあるベンダーさんから支援のご依頼
• 数百個の手順書
• 納期がえぐい
• 全部Windows
開発メンバー
• SQL Serverの人
• Ansible歴4年
• モジュール作れる人
• Ansible歴2年
• IISの人
• Ansible歴2年
• Ansible歴半年
• ぼく
• すてみ
• WebSphereの人
• プロジェクトオーナー
• コーディング規約作る人
はじめにやったこと
• 役割分担
• 1手順書=1Role
• 各自の得意分野で担当手順書を振り分け
• Gitのスキトラ
• ブランチの作成
• プッシュ/プル
• プルリクエストの出し方
• Azure DevOps上で共同開発
• Role完成時にPRは必ず出すように(デフォルトブランチへのプッシュ禁止)
• レビュワーには基本全員指定
• お互いのソースコードを共有しあい、学び、標準化されていく
ぶちあたった課題
• エンジニアの半分はマウントエンジニアでできている
• コーディング規約(標準的なyamllint、ansible-lintのルール)に沿っていない微々たる指摘
• 指摘した方は良かれと思って
• 指摘された方はマウント取られたと思ってしまう
• 結果、モチベーションの低下
• 目lint疲れ
→ できるだけ生産性の低い指摘がなくなる方法を考えねば!!
自動lintの仕組み
• つまづきAnsible
• だいたい毎週土曜日20:00~
• akira6592 さんが有志にて開催されている非常に有益なチャンネル
• 2020/10/14の神回で放送された「 VSCodeでいい感じにansible-lintしたい」
https://tekunabe.hatenablog.jp/entry/2020/10/24/ansible_stumble_20
で紹介されたVS Codeでの自動lintツールを展開
→ 劇的にlintでの指摘が減り、PRのコメント欄も穏やかに!
→ 人から指摘されるより、機械に指摘された方が心理的にいいよね!
インフラCIパイプラインの構築
• lintのチェックは減ったけど・・・
• lint忘れ
• 各人の開発環境の差異
• 冪等性が担保されているか??
• PR承認後のちょっとした変更の再テストが手間
→ そもそも本番展開前にちゃんと動くの??
• AzurePipelineとmolecule-azureによるインフラCIパイプライン
https://qiita.com/jir0/items/50ff2a35ad21a60c95a4
• molecule のlintシーケンスで残lint忘れを排除
• molecule のidempotenceシーケンスで冪等性の担保
→ 品質を担保! ①PR ②pipeline
④create
⑧destoy
③lint
⑤converge
⑥idempotence
⑦verify
その他心がけたこと
# 例です。実際のソースじゃないです
---
- name: get hogehoge status
win_shell: Get-Content hogehoge.txt
register: result_hogehoge
changed_when: false
check_mode: false
- name: execute hogehoge bat
win_command: hogehoge.bat
when: hogehoge not in result_hogehoge.stdout
- name: get fugafuga status
win_shell: Get-Content fugafuga.txt
register: result_fugafuga
changed_when: false
check_mode: false
- name: execute fugafuga bat
win_command: fugafuga.bat
when: fugafuga not in result_fugafuga.stdout
# 例です。実際のソースじゃないです。
---
- win_stat:
path: C:¥¥Windows¥¥{{ stat_dir }}
頑張ったら構文が短縮されるものは指摘 宗教上の問題は極力統一
---
- win_stat:
path: C:/Windows/{{ stat_dir }}
Bさんのpathの指定方法
Aさんのpathの指定方法
hogehoge以外の
処理内容は全く同じ
include_tasks
loop_control
loop_var
を使おう!
まとめ
• エンジニアは石垣、エンジニアは城、エンジニアは堀
• メンバーのモチベーションの維持が何より大事
• 前向きな指摘はする
• 仕組みで解決できる部分は仕組みに任せる
• VS Code + ansible-lint/yamllint
• molecule-azure + azurepipeline

More Related Content

What's hot

Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウJavaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Genki Yamada
 
Winodws azure紹介
Winodws azure紹介Winodws azure紹介
Winodws azure紹介
fumios
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
 
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
Takahiro Moteki
 
さくらとWeb×マーケティングの夕べ #1
さくらとWeb×マーケティングの夕べ #1さくらとWeb×マーケティングの夕べ #1
さくらとWeb×マーケティングの夕べ #1
Hidenori Matsuki
 

What's hot (20)

AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)
 
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
 
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
 
.NETの最近
.NETの最近.NETの最近
.NETの最近
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウJavaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
Javaによるゲーム開発パッケージ化への取り組みと開発ノウハウ
 
Ansible softlayer
Ansible softlayer Ansible softlayer
Ansible softlayer
 
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみたSphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
 
Winodws azure紹介
Winodws azure紹介Winodws azure紹介
Winodws azure紹介
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
 
クラウド化が進む今だから読み解くHyper-Vアーキテクチャ
クラウド化が進む今だから読み解くHyper-Vアーキテクチャクラウド化が進む今だから読み解くHyper-Vアーキテクチャ
クラウド化が進む今だから読み解くHyper-Vアーキテクチャ
 
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
 
SaCSS vol.56 こんなに素敵なBrackets!
SaCSS vol.56 こんなに素敵なBrackets!SaCSS vol.56 こんなに素敵なBrackets!
SaCSS vol.56 こんなに素敵なBrackets!
 
グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!グラフ解析で社長の脳内さらす!
グラフ解析で社長の脳内さらす!
 
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
 
WordBench京都9月号
WordBench京都9月号WordBench京都9月号
WordBench京都9月号
 
【PlayFab】ログインと同時にいろんなデータを取得する方法
【PlayFab】ログインと同時にいろんなデータを取得する方法【PlayFab】ログインと同時にいろんなデータを取得する方法
【PlayFab】ログインと同時にいろんなデータを取得する方法
 
さくらとWeb×マーケティングの夕べ #1
さくらとWeb×マーケティングの夕べ #1さくらとWeb×マーケティングの夕べ #1
さくらとWeb×マーケティングの夕べ #1
 
Parallels 13
Parallels 13Parallels 13
Parallels 13
 
Photon Server Deep Dive
Photon Server Deep DivePhoton Server Deep Dive
Photon Server Deep Dive
 

Similar to Ansible night2021.02

Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
KinebuchiTomo
 
小さく始めて後で困らないためのVPCとChefを使ったAWS運用
小さく始めて後で困らないためのVPCとChefを使ったAWS運用小さく始めて後で困らないためのVPCとChefを使ったAWS運用
小さく始めて後で困らないためのVPCとChefを使ったAWS運用
Satoru Nakamura
 
初心者がハマったWindows Azureの基礎の基礎
初心者がハマったWindows Azureの基礎の基礎初心者がハマったWindows Azureの基礎の基礎
初心者がハマったWindows Azureの基礎の基礎
Saori Ando
 
20120826 ec cube-handson
20120826 ec cube-handson20120826 ec cube-handson
20120826 ec cube-handson
Masaki Takeda
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
Kana SUZUKI
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発
AimingStudy
 
仮想端末管理ソフトウェア
仮想端末管理ソフトウェア仮想端末管理ソフトウェア
仮想端末管理ソフトウェア
Katsutoshi Nagaoka
 

Similar to Ansible night2021.02 (20)

Ansible provisioning
Ansible provisioningAnsible provisioning
Ansible provisioning
 
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
 
Ansible勉強会 #1 LT
Ansible勉強会 #1 LTAnsible勉強会 #1 LT
Ansible勉強会 #1 LT
 
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
 
小さく始めて後で困らないためのVPCとChefを使ったAWS運用
小さく始めて後で困らないためのVPCとChefを使ったAWS運用小さく始めて後で困らないためのVPCとChefを使ったAWS運用
小さく始めて後で困らないためのVPCとChefを使ったAWS運用
 
初心者がハマったWindows Azureの基礎の基礎
初心者がハマったWindows Azureの基礎の基礎初心者がハマったWindows Azureの基礎の基礎
初心者がハマったWindows Azureの基礎の基礎
 
20120826 ec cube-handson
20120826 ec cube-handson20120826 ec cube-handson
20120826 ec cube-handson
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
NCstudy 2.5
NCstudy 2.5NCstudy 2.5
NCstudy 2.5
 
20170221 aws handson
20170221 aws handson20170221 aws handson
20170221 aws handson
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
 
XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
 
DeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャDeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャ
 
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニングAnsible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
 
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれるAzure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発
 
仮想端末管理ソフトウェア
仮想端末管理ソフトウェア仮想端末管理ソフトウェア
仮想端末管理ソフトウェア
 

Recently uploaded

Recently uploaded (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Ansible night2021.02