SlideShare une entreprise Scribd logo
1  sur  15
itamae plugin CI
@ohrdev
自己紹介
おーはら
twitter: @ohrdev
仕事:
- 目黒の会社
- 基盤技術部
- Ruby/Lisp/Erlang/Elixir/Scala/AWS
趣味:
- 仏像制作,寺社仏閣,VR,FF14(白68),etc
今日のお話(3行で)
•Itamaeのプラグインのテストをし
たいので
•Wercker,ServerspecでCIを整備し
ました
•その紹介(デモ)をします
参考情報(元ネタ)
34歳になった&Itamaeプラグイを本気でCIする
http://sue445.hatenablog.com/entry/2016/04/07/195627
serverspec
http://serverspec.org/
>>デモ<<
• 先にデモします
• https://github.com/ohr486/itamae-plugin-recipe-scala/
• 内容
• 1) commitをpush
• 2) CIが起動
• 3) Vagrantが起動
• 4) itamaeを実行
• 5) serverspecを実行
• 6) 結果を表示
利用ツール・サービスの説明
• Itamae
• Serverspec
• Wercker
• Vagrant
• DigitalOcean
Itamae/pluginとは?
• https://github.com/itamae-kitchen/itamae
• Chefにインスパイヤされて作られた構成管理ツール
• pluginはgemとして作成できる
• 類似のツール
• Ansible
• Chef
• Pupet
Serverspecとは?
• https://www.amazon.co.jp/dp/4873117097
• サーバの環境をrspecのDSLで書くことができるテストツール
Werckerとは?
• http://www.wercker.com/
• CIサービス、LXC,dockerが利用可能(現在はLXCは利用非推奨)
• 類似のサービス/ツール
• TravisCI
• CircleCI
• CideCI
• Jenkins
Vagrantとは?
• https://www.vagrantup.com/
• HashCorp製の仮想環境構築・管理ツール
• 今回はDigitalOcean pluginを使って、ローカル(のVirtualBox)
の代わりに、DigitalOcean上に環境を作る
Digital Oceanとは?
• https://www.digitalocean.com/
• アメリカの格安VPS
• Vagrantと連携できる(DOのvagrant pluginがある)
• SSDなので起動が早い
• 類似のサービス
• AWS
• GCP
• Azure
流れ( PR -> Wercker -> DO )
• https://github.com/ohr486/itamae-plugin-recipe-scala
• GithubのPRが作成されるとWerckerが起動
• https://github.com/ohr486/itamae-plugin-recipe-
scala/blob/master/wercker.yml
• Wercker上で
• https://github.com/ohr486/itamae-plugin-recipe-
scala/blob/master/ci/setup.sh
• Dockerコンテナが起動
• Vagrant, DigitalOceanPluginをインストール
• SSHの鍵を設定(情報はwerckerの環境変数から取得)
• VagrantをDigitalOcean上に作成
流れ( DO -> Wercker )
• DigitalOcean上で
• https://github.com/ohr486/itamae-plugin-recipe-
scala/blob/master/ci/build.sh
• Itamaeを流して環境作成
• Serverspecを実行してテスト
• Wercker上で
• DigitalOceanのサーバーを削除
めでたしめでたし
• デモリポジトリ
• github
• https://github.com/ohr486/itamae-plugin-recipe-scala
• wercker
• https://app.wercker.com/ohr486/itamae-plugin-recipe-scala/runs
まとめ
• サーバー構成管理のテストは安心(serverspec)
• CIに組み込むとお手軽にチェックできる
• DigitalOcean安くて便利
• 構成管理もテスト/CIしましょう

Contenu connexe

Tendances

Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
 
flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享
Eugene Wang
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
 

Tendances (20)

Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編
 
Ansible/Vagrantでアドテク環境を最速構築
Ansible/Vagrantでアドテク環境を最速構築Ansible/Vagrantでアドテク環境を最速構築
Ansible/Vagrantでアドテク環境を最速構築
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Vagrant+Ansibleで検証環境を簡単構築
Vagrant+Ansibleで検証環境を簡単構築Vagrant+Ansibleで検証環境を簡単構築
Vagrant+Ansibleで検証環境を簡単構築
 
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
 
Serverless apps on aws using scala
Serverless apps on aws using scalaServerless apps on aws using scala
Serverless apps on aws using scala
 
Goss入門
Goss入門Goss入門
Goss入門
 
flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享
 
最近のRails事情 - 4.1!
最近のRails事情 - 4.1!最近のRails事情 - 4.1!
最近のRails事情 - 4.1!
 
API スタブをえらんでみた
API スタブをえらんでみたAPI スタブをえらんでみた
API スタブをえらんでみた
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
 
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbitamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
 
Kotlin が公式サポートになったので Kotlin の話
Kotlin が公式サポートになったので Kotlin の話Kotlin が公式サポートになったので Kotlin の話
Kotlin が公式サポートになったので Kotlin の話
 
Appcelerator TitaniumでSocket.io (1.x)
Appcelerator TitaniumでSocket.io (1.x)Appcelerator TitaniumでSocket.io (1.x)
Appcelerator TitaniumでSocket.io (1.x)
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
 
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
Rails Testing on Fargate
Rails Testing on FargateRails Testing on Fargate
Rails Testing on Fargate
 

Similaire à meguro.rb LT

第2.1回Twitter API勉強会 - 検索API
第2.1回Twitter API勉強会 - 検索API第2.1回Twitter API勉強会 - 検索API
第2.1回Twitter API勉強会 - 検索API
Yusuke Yamamoto
 
Webサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hackWebサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hack
Yusuke Yamamoto
 

Similaire à meguro.rb LT (20)

Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話
 
第2.1回Twitter API勉強会 - 検索API
第2.1回Twitter API勉強会 - 検索API第2.1回Twitter API勉強会 - 検索API
第2.1回Twitter API勉強会 - 検索API
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 
技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)
 
Laravel Livewire の紹介
Laravel Livewire の紹介Laravel Livewire の紹介
Laravel Livewire の紹介
 
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Introduction to guard + rspec
Introduction to guard + rspecIntroduction to guard + rspec
Introduction to guard + rspec
 
Webサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hackWebサイト向けAPI #twtr_hack
Webサイト向けAPI #twtr_hack
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
 
solr勉強会資料
solr勉強会資料solr勉強会資料
solr勉強会資料
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
 
ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話
 
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 

Plus de Tsunenori Oohara

失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発
Tsunenori Oohara
 

Plus de Tsunenori Oohara (20)

Elixirハンズオン2
Elixirハンズオン2Elixirハンズオン2
Elixirハンズオン2
 
Elixir解答
Elixir解答Elixir解答
Elixir解答
 
Elixir言語紹介
Elixir言語紹介Elixir言語紹介
Elixir言語紹介
 
パンチラに関する考察
パンチラに関する考察パンチラに関する考察
パンチラに関する考察
 
how-to-learn-elixir
how-to-learn-elixirhow-to-learn-elixir
how-to-learn-elixir
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
 
Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11
 
Re:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LTRe:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LT
 
失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発
 
Tokyoex6 EEx
Tokyoex6 EExTokyoex6 EEx
Tokyoex6 EEx
 
running-elixir-in-production
running-elixir-in-productionrunning-elixir-in-production
running-elixir-in-production
 
hello waf, hello phoenix
hello waf, hello phoenixhello waf, hello phoenix
hello waf, hello phoenix
 
tokyo.ex3 LT
tokyo.ex3 LTtokyo.ex3 LT
tokyo.ex3 LT
 
running web app on elixir
running web app on elixirrunning web app on elixir
running web app on elixir
 
Elixir lang bootstrap
Elixir lang bootstrapElixir lang bootstrap
Elixir lang bootstrap
 
Elixirと他言語の比較的紹介 ver.2
Elixirと他言語の比較的紹介ver.2Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介 ver.2
 
Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄
 
elixir in production
elixir in productionelixir in production
elixir in production
 
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
 

Dernier

Dernier (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

meguro.rb LT