SlideShare a Scribd company logo
~SoloのDeprecatedから半年~
@smallpalace
Chef-localmodeをためした
Who are you
》 10年ほど同じ会社でサバカンしている
》 夫(4x)1、娘(3)1
》 むだに手先が器用なゆるゲーマー
もくじ
》 事の経緯など
》 比較検討
》 インストール
》 Knife.rbを用意
》 Validation_keyを用意
》 Chef-Clientでローカル適用
》 Knife-zeroでリモート適用
》 並列実行
》 検索&適用
》 ハマったところなど
》 参考サイト
》 推奨図書
》 おわり
事の経緯など
》 開発元からChef-Soloをdeplicatedとい
う扱いにすると公表された
》 関わってる環境が継続前提かつ関係者
が技術的にとんがり系で移行の話題に
》 とりあえず調べるところからはじめた
比較検討
》 Ansible,Puppet,Fablic,,,
Chef-Repoの改修コストが大きすぎる。YAMLでレシピ書くのヤダ。
》 Itamae
Chef-Repoの改修コストは小さめだけどroleやenvironmentを
attributeに直すコストがムリ。Databags機能もない。
》 Chef-Server
改修コストは無いけどコミュニティ版はHA機能がないので見送り。
Chef-ZeroをインメモリChef-Serverとして使うのも停止でデータが消
えるので意味ない。
》 レシピ的にほぼ何の改修もなくてSoloよりknifeコマンドが使いこなせ
るChef-localmodeでいいだろうという話に。
》 わたしはchef沼にだいぶつかりこんでいたことが分かった。
インストール
》 Gemfileに以下を記載
》 bundle install
# bundle install
# bundle show
$ which chef-zero
$ knife zero –help
** ZERO COMMANDS **
knife zero bootstrap FQDN (options)
knife zero chef_client QUERY (options)
knife zero diagnose # show configuration from file
vi Gemfile
--------------------------
gem 'chef' #追加
gem 'chef-zero' #追加
gem 'knife-zero' #追加
--------------------------
chef-dkを入れる方法もあるが先に入れてPATH通しておかないと詰んだりなど
Knife.rbを用意
》 Chef-Repo/.chef/.knife.rbを用意
chef_repo = File.join(File.dirname(__FILE__), "..")
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
#node_name `uname -n`
client_key "#{current_dir}/dummy.pem"
validation_client_name 'chef-validator'
validation_key "#{current_dir}/dummy.pem“
cookbook_path ["#{chef_repo}/cookbooks", "#{chef_repo}/site-cookbooks"]
node_path "#{chef_repo}/nodes"
role_path "#{chef_repo}/roles"
environment_path "#{chef_repo}/environments"
data_bag_path "#{chef_repo}/data_bags"
encrypted_data_bag_secret “path-to-databags-key"
knife[:berkshelf_path] = "#{chef_repo}/cookbooks"
#knife[:ssh_user] = ""
#knife[:ssh_password] = ""
knife[:ssh_port] = 22
knife[:editor] = "vim"
localmode true
chef_server_url 'http://127.0.0.1:8889'
syntax_check_cache_path "#{current_dir}/syntax_check_cache”
#puts Chef::Config.inspect
Validation_keyを用意
》 初回Node登録などに必要な鍵を作成
ssh-keygen -t rsa -N "" -f ~/chef-repo/.chef/dummy.pem
※この鍵のknife zeroでの指定方法は、どこで実行しようともChef-
Repoからの相対PATHな感じでした。絶対PATHにしたらエラー。
Chef-clientでローカル適用
》 client.rbを用意してchef-clientを実行$ mkdir /etc/chef; knife configure client –z
Creating client configuration
Writing client.rb
Writing validation.pem
$ vi /etc/chef/client.rb
------------------------------------------------------------------------
log_location STDOUT ## logの出力先
chef_server_url "http://localhost:8889" ## Chef-Server(Zero)のAPIエンドポイント
validation_client_name "chef-validator" ## Chef-Server(Zero)にNodeを登録するユーザ
validation_key "/etc/chef/validation.pem" ## Nodeを登録するユーザの秘密鍵
#node_name `uname -n` ## Node Objectの名前(default:FQDN)
client_fork true ## Chef-Clientの実行時にプロセスをフォークするか
client_key "/etc/chef/client.pem" ## Chef-Serverとの認証時に使用する秘密鍵のパス
client_registration_retries 5 ## Chef-ServerへNodeを新規登録するリトライ回数
cookbook_path ["#{chef_repo}/cookbooks", "#{chef_repo}/site-cookbooks"]
node_path "#{chef_repo}/nodes"
role_path "#{chef_repo}/roles"
environment_path "#{chef_repo}/environments"
data_bag_path "#{chef_repo}/data_bags"
encrypted_data_bag_secret “path-to-databags-key"
knife[:berkshelf_path] = "#{chef_repo}/cookbooks“
#puts Chef::Config.inspect
------------------------------------------------------------------------
$ sudo chef-client -z -r role¥[role-name¥] ¥
-E environement-name --validation_key /etc/chef/validation.pem
Knife-zeroでリモート適用
》 以下のように実施
newip=10.xxx.xxx.xxx
env=sandbox
dpas=`cat path_to_file`
user=hoge
url=https://www.opscode.com/chef/install.sh
$ knife zero bootstrap --node-name $newip ¥
--bootstrap-url $url -i .chef/dummy.pem -x $user -P $dpas ¥
-s $(cat ./path_to_databags-key) --sudo ¥
-E $env -r role¥[role-name¥] $newip
.knife.rbに以下を指定しておくと、-xと-Pを省略可能(平文になってしまうのでgitコミットしないよう注意。
------------------
knife[:ssh_user] = ""
knife[:ssh_password] = ""
------------------
検索&適用、並列実行
》 Knife sshとかで検索結果で実行
うまくいかなかった
》 Knife zero
うまくいかなかった
》 Pallarelコマンドをつかう
$ parallel -j 3 knife zero bootstrap -c ~/Chef-Repo/.chef/knife.rb -z -E $env -r role¥[role-name¥] ¥
-i .chef/dummy.pem -s $(cat ~/path_to_databag-key) --sudo --no-host-key-verify ::: $host1 $host2
ハマったところなど
》 鍵関連
ERROR: ArgumentErrorCould not parse PKey: no start line
ERROR: NoMethodErrorundefined method `forward' for nil:NilClass
ERROR: Net::SSH::Exceptionremote forwarding request failed
鍵指定は必ずChef-Repoからの相対パスじゃないとダメとかなんでだろう。
》 オプションとか
いっぱいありすぎて。。
》 実行場所
どこでもいいらしいけど-cで設定ファイルを明示など
》 node_nameとか
chef-client実行時は書いてあるとエラー、knife-zero実行時はないとエラー。
参考サイト
》 Chef-ZeroをインメモリChef-Serverとして使おうとしてるタイプ
http://dev.classmethod.jp/cloud/aws/amazon-linux-chef-zero/
http://clavier.hatenablog.com/entry/2013/11/26/222151
http://buta9999.hatenablog.jp/entry/2014/11/26/025708
http://inokara.hateblo.jp/entry/2013/05/26/151230
http://qiita.com/issei126/items/e5242453818f4419b745
http://www.creationline.com/lab/2749
http://qiita.com/kukita/items/932822b2d029e4b8a0c5
》 Chef-Zeroをlocalmodeで使おうとしてるタイプ
http://www.slideshare.net/mpgoetz/chefzero-local-mode
http://qiita.com/sawanoboly/items/218a7b03ddec6be45e34
http://www.atmarkit.co.jp/ait/articles/1503/24/news030.html
https://github.com/higanworks/chef_localmode_tutorial/blob/master/.chef/knife.rb
https://www.conoha.jp/blog/tech/4547.html
http://qiita.com/sawanoboly/items/a2cbd4c42525ae894371
http://qiita.com/LAmant/items/7d1ac7efec9041d067a6
http://www.creationline.com/lab/6380
http://buta9999.hatenablog.jp/entry/2014/11/26/025708
》 そのた
http://www.slideshare.net/yandod/devopschef-chef12
http://dev.classmethod.jp/server-side/chef-server-install/
https://twitter.com/search?f=realtime&q=%23GetChef_ja&src=typd
http://marcy.hatenablog.com/entry/2015/04/09/004605
http://qiita.com/Marcy/items/a314d81b78bb01a9626f
https://docs.chef.io/config_rb_knife.html
https://hiroakis.com/blog/2011/11/13/gnu-parallel/
推奨図書
》 「Chef活用ガイド」
おわり
》 ご覧いただきありがとうございました

More Related Content

More from Yu Komiya

Remotework
Remotework Remotework
Remotework
Yu Komiya
 
時短主婦の味方のご紹介
時短主婦の味方のご紹介時短主婦の味方のご紹介
時短主婦の味方のご紹介
Yu Komiya
 
MySQL5.6関連情報まとめ
MySQL5.6関連情報まとめMySQL5.6関連情報まとめ
MySQL5.6関連情報まとめ
Yu Komiya
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
Yu Komiya
 
Chef社内向け解説とその課題について
Chef社内向け解説とその課題についてChef社内向け解説とその課題について
Chef社内向け解説とその課題について
Yu Komiya
 
My sqlのha構成について
My sqlのha構成についてMy sqlのha構成について
My sqlのha構成について
Yu Komiya
 
MHAを検証して導入した話
MHAを検証して導入した話MHAを検証して導入した話
MHAを検証して導入した話
Yu Komiya
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
Yu Komiya
 

More from Yu Komiya (8)

Remotework
Remotework Remotework
Remotework
 
時短主婦の味方のご紹介
時短主婦の味方のご紹介時短主婦の味方のご紹介
時短主婦の味方のご紹介
 
MySQL5.6関連情報まとめ
MySQL5.6関連情報まとめMySQL5.6関連情報まとめ
MySQL5.6関連情報まとめ
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
 
Chef社内向け解説とその課題について
Chef社内向け解説とその課題についてChef社内向け解説とその課題について
Chef社内向け解説とその課題について
 
My sqlのha構成について
My sqlのha構成についてMy sqlのha構成について
My sqlのha構成について
 
MHAを検証して導入した話
MHAを検証して導入した話MHAを検証して導入した話
MHAを検証して導入した話
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 

Recently uploaded

ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 

Recently uploaded (12)

ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 

Chef localmodeをためした