Difference between revisions of "Chef infrastructure setup"
From Notes_Wiki
(Created page with "<yambe:breadcrumb>Chef|Chef</yambe:breadcrumb> =Chef infrastructure setup= ==Install Chef server== In case of a virtual server (such as openVZ container) 2.5GB RAM, 500k ino...") |
m |
||
Line 10: | Line 10: | ||
# rpm -ivh *.rpm | # rpm -ivh *.rpm | ||
# chef-server-ctl reconfigure | # chef-server-ctl reconfigure | ||
#:At least in the case of openVZ containers following additional things need to be done: | |||
#:# '<tt>chef-server-ctl reconfigure</tt>' needs to be run twice so that installation ends with | |||
#:#:<pre> | |||
#:#:: Chef Client finished, 396/448 resources updated in 109.272186048 seconds | |||
#:#:: opscode Reconfigured! | |||
#:#:</pre> | |||
#:# Container needs to be rebooted after package is installed for things to work. Without this following error message would be received while trying to create a new user using chef-server-ctl | |||
#:#:<pre> | |||
#:#::ERROR: Errno::ECONNRESET: Connection reset by peer - SSL_connect | |||
#:#:</pre> | |||
# Download ops-manage from http://downloads.getchef.com/chef-manage/ to /root | # Download ops-manage from http://downloads.getchef.com/chef-manage/ to /root | ||
# chef-server-ctl install opscode-manage --path /root | # chef-server-ctl install opscode-manage --path /root | ||
Line 54: | Line 64: | ||
#:: log_level :info | #:: log_level :info | ||
#:: log_location STDOUT | #:: log_location STDOUT | ||
#:: node_name " | #:: node_name "saurabh" | ||
#:: client_key "#{current_dir}/saurabh.pem" | #:: client_key "#{current_dir}/saurabh.pem" | ||
#:: validation_client_name "saurabh-rekall" | #:: validation_client_name "saurabh-rekall" | ||
Line 63: | Line 73: | ||
#:: cookbook_path ["#{current_dir}/../cookbooks"] | #:: cookbook_path ["#{current_dir}/../cookbooks"] | ||
#:</pre> | #:</pre> | ||
#::Here node_name must match with the name of the user for which client key was generated. | |||
# Run "<tt>knife user list</tt>" and "<tt>knife client list</tt>" commands to verify whether knife configuration is working | # Run "<tt>knife user list</tt>" and "<tt>knife client list</tt>" commands to verify whether knife configuration is working | ||
# Create "<tt>~/cookbooks</tt>" folder for cookbooks as specified in ~/.chef/knife.rb | # Create "<tt>~/cookbooks</tt>" folder for cookbooks as specified in ~/.chef/knife.rb |
Revision as of 03:58, 15 December 2014
<yambe:breadcrumb>Chef|Chef</yambe:breadcrumb>
Chef infrastructure setup
Install Chef server
In case of a virtual server (such as openVZ container) 2.5GB RAM, 500k inodes and 10GB disk space is recommended
- yum -y install postgresql
- Download chef server from http://downloads.chef.io/chef-server/
- rpm -ivh *.rpm
- chef-server-ctl reconfigure
- At least in the case of openVZ containers following additional things need to be done:
- 'chef-server-ctl reconfigure' needs to be run twice so that installation ends with
- Chef Client finished, 396/448 resources updated in 109.272186048 seconds
- opscode Reconfigured!
- Container needs to be rebooted after package is installed for things to work. Without this following error message would be received while trying to create a new user using chef-server-ctl
- ERROR: Errno::ECONNRESET: Connection reset by peer - SSL_connect
- 'chef-server-ctl reconfigure' needs to be run twice so that installation ends with
- At least in the case of openVZ containers following additional things need to be done:
- Download ops-manage from http://downloads.getchef.com/chef-manage/ to /root
- chef-server-ctl install opscode-manage --path /root
- opscode-manage-ctl reconfigure
- chef-server-ctl reconfigure
- chef-server-ctl user-create saurabh Saurabh Barjatiya saurabh@rekallsoftware.com iiit123 --filename saurabh.pem
- Open http://<server-IP>/ and login using username (saurabh) and password (iiit123)
- Create organization and download starter kit. It will warn about regenerating keys. That is ok.
- Other way to create organization is:
- chef-server-ctl org-create rekall Rekall Software Pvt. Ltd. --association_user saurabh --filename rekall.pem
- Save starter-kit on a workstation and use it to work with server
Steps learned from https://docs.chef.io/install_server.html
Configure chef-server and knife workstation combination using command line
- On chef server create a new user using:
- chef-server-ctl user-create user_name first_name last_name email password --filename FILE_NAME
-
-
- chef-server-ctl user-create saurabh Saurabh Barjatiya saurabh@rekallsoftware.com iiit123 --filename saurabh.pem
-
- Then create a new organization using:
- chef-server-ctl org-create short_name full_organization_name --association_user user_name --filename FILE_NAME
-
- Example
- chef-server-ctl org-create rekall Rekall Software Pvt. Ltd. --association_user saurabh --filename rekall.pem
- Example
- Install chef development kit on client as explained at chef-apply and receipe syntax
- Verify using chef-client -v that client got installed properly
- Create ~/.chef and copy the two user and organization pem files to this folder
- Now create "~/.chef/knife.rb" with following content:
- current_dir = File.dirname(__FILE__)
- log_level :info
- log_location STDOUT
- node_name "saurabh"
- client_key "#{current_dir}/saurabh.pem"
- validation_client_name "saurabh-rekall"
- validation_key "#{current_dir}/rekall.pem"
- chef_server_url "https://chefserver/organizations/rekall"
- cache_type 'BasicFile'
- cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
- cookbook_path ["#{current_dir}/../cookbooks"]
-
- Here node_name must match with the name of the user for which client key was generated.
- Run "knife user list" and "knife client list" commands to verify whether knife configuration is working
- Create "~/cookbooks" folder for cookbooks as specified in ~/.chef/knife.rb
More info on knife configuration is available at https://docs.chef.io/config_rb_knife.html
Steps learned from http://sachinsharm.wordpress.com/2013/10/11/installsetup-and-configure-chef-serverworkstationnode-on-centosrhel-6-4/
Configure a new node to interact with chef-server
- To configure a new node to work with chef server use:
- knife bootstrap {{address}} --ssh-user {{user}} --ssh-password '{{password}}' --node-name node1 --run-list 'recipe[learn_chef_httpd]'
-
- For example
- knife bootstrap 192.168.122.105 --ssh-user root --ssh-password rekall123 --node-name dns
- For example
<yambe:breadcrumb>Chef|Chef</yambe:breadcrumb>