SlideShare a Scribd company logo
1 of 15
~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

時短主婦の味方のご紹介
時短主婦の味方のご紹介時短主婦の味方のご紹介
時短主婦の味方のご紹介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

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Chef localmodeをためした