Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
chefрецепты от шеф-повара
Основные понятияNode - хост на котором запущен chef-clientchef-client - консольная утилитаобновляющая нодуchef server - хо...
Архитектура
Основные компонентыohai - собирает информацию о ноде накоторой запущен (platform, fqdn)knife - консольная утилита для упра...
В кратце это работает так
С чего начать?1. Поднимаем chef server;2. Настраиваем knife на chef server;3. Настраиваем workstation (clone chef-repo,   ...
NodeОписывается структурой json. knife node edit<node_name> для редактирования.● Аттрибуты;● Run list - рецепты которые бу...
Attributes
Cookbooksattributes/definitions/files/libraries/metadata.rb # version, dependencyproviders/README.rdocrecipes/resources/te...
Recipesknife cookbook create apache2cookbooks/apache2/recipes/default.rbcookbooks/apache2/recipes/mod_ssl.rb{ # knife node...
Resources# Создаем директориюdirectory "/tmp/monkey" do owner "root" group "root" mode 0755 action :createend# Запускаем и...
apt-repository exampleapt_repository "hardy-rsyslog-ppa" do  uri "http://ppa.launchpad.net/a.bono/rsyslog/ubuntu"  distrib...
php examplephp_pear "XML_RPC" do  action :upgradeendphp_pear "XML_RPC" do  version "1.5.4"  action :installendphp_pear "ap...
Providersaction :create do execute "create database" do  not_if "mysql -e show databases; | grep #{new_resource.name}"  co...
Searchknife search admins id:charlieknife search node name:app?.example.comknife search node "broadcast:192.168.0.*"knife ...
Data bagsknife data bag create adminsvi data_bags/admins/charlie.json{ "id": "charlie", "uid": 1005, "gid":"ops", "shell":...
workstation workflow● knife cookbook create <name>● knife cookbook upload <name>● Изменения в нодах, синхронизируются  авт...
deploy exampledeploy "/my/deploy/dir" do repo "git@github.com/whoami/project" revision "abc123" # or "HEAD" or "TAG_for_1....
Полезняшки●   http://wiki.opscode.com/display/chef/Home●   https://github.com/opscode/chef-repo●   http://habrahabr.ru/com...
Спасибо за вниманиеemail: mokevnin@gmail.comblog: www.wddx.ruКайдзен www.kaize.rutwitter.com/mokevnin
Chef
Upcoming SlideShare
Loading in …5
×

Chef

1,358 views

Published on

  • Be the first to comment

Chef

  1. 1. chefрецепты от шеф-повара
  2. 2. Основные понятияNode - хост на котором запущен chef-clientchef-client - консольная утилитаобновляющая нодуchef server - хост с которого нодызагружают свою конфигурациюchef-repo - репозиторий с конфигурациямиworkstation (Client) - компьютерразработчика с локальной версией chef-repocookbook - поваренная книга
  3. 3. Архитектура
  4. 4. Основные компонентыohai - собирает информацию о ноде накоторой запущен (platform, fqdn)knife - консольная утилита для управленияchef-repo, chef server, nodes and more.shef - интерактивная ruby консоль дляотладки и управления.
  5. 5. В кратце это работает так
  6. 6. С чего начать?1. Поднимаем chef server;2. Настраиваем knife на chef server;3. Настраиваем workstation (clone chef-repo, setup knife);4. Бутстрапим ноду. knife bootstrap 10.40.64.143 -r -x root -P <secret>;5. Обновляем ноду chef-client.
  7. 7. NodeОписывается структурой json. knife node edit<node_name> для редактирования.● Аттрибуты;● Run list - рецепты которые будут применены к ноде;● Environment● Role
  8. 8. Attributes
  9. 9. Cookbooksattributes/definitions/files/libraries/metadata.rb # version, dependencyproviders/README.rdocrecipes/resources/templates/
  10. 10. Recipesknife cookbook create apache2cookbooks/apache2/recipes/default.rbcookbooks/apache2/recipes/mod_ssl.rb{ # knife node edit <name> "run_list": [ "recipe[apache2]", "recipe[apache2::mod_ssl]" ]}
  11. 11. Resources# Создаем директориюdirectory "/tmp/monkey" do owner "root" group "root" mode 0755 action :createend# Запускаем и добавляем в автозагрузкуservice "nginx" do supports :status => true, :restart => true, :reload => true subscribes :reload, resources(:template => "#{node[:nginx][:dir]}/nginx.conf") action [:enable, :start]end
  12. 12. apt-repository exampleapt_repository "hardy-rsyslog-ppa" do uri "http://ppa.launchpad.net/a.bono/rsyslog/ubuntu" distribution "hardy" components ["main"] keyserver "keyserver.ubuntu.com" key "C0061A4A" action :add notifies :run, "execute[apt-get update]", :immediatelyendapt_repository "zenoss" do action :removeend
  13. 13. php examplephp_pear "XML_RPC" do action :upgradeendphp_pear "XML_RPC" do version "1.5.4" action :installendphp_pear "apc" do action :install directives(:shm_size => 128, :enable_cli => 1)end
  14. 14. Providersaction :create do execute "create database" do not_if "mysql -e show databases; | grep #{new_resource.name}" command "mysqladmin create #{new_resource.name}" endendaction :delete do execute "delete database" do only_if "mysql -e show databases; | grep #{new_resource.name}" command "mysqladmin drop #{new_resource.name}" endend
  15. 15. Searchknife search admins id:charlieknife search node name:app?.example.comknife search node "broadcast:192.168.0.*"knife search node "mtu:1500"knife search node "flags:UP"search(:node, run_list:recipe[foo::bar])search(:node, role:load_balancer)
  16. 16. Data bagsknife data bag create adminsvi data_bags/admins/charlie.json{ "id": "charlie", "uid": 1005, "gid":"ops", "shell":"/bin/zsh", "comment":"Crazy Charlie"}# in receiptdata_bag_item(admins, charlie)
  17. 17. workstation workflow● knife cookbook create <name>● knife cookbook upload <name>● Изменения в нодах, синхронизируются автоматически.
  18. 18. deploy exampledeploy "/my/deploy/dir" do repo "git@github.com/whoami/project" revision "abc123" # or "HEAD" or "TAG_for_1.0" or (subversion) "1234" user "deploy_ninja" enable_submodules true migrate true migration_command "rake db:migrate" environment "RAILS_ENV" => "production", "OTHER_ENV" => "foo" shallow_clone true action :deploy # or :rollback restart_command "touch tmp/restart.txt" git_ssh_wrapper "wrap-ssh4git.sh" scm_provider Chef::Provider::Git # is the default, for svn: Chef::Provider::Subversionend
  19. 19. Полезняшки● http://wiki.opscode.com/display/chef/Home● https://github.com/opscode/chef-repo● http://habrahabr.ru/company/scalaxy/blog/87302/● http://vagrantup.com/● http://www.opscode.com/ (chef-server)
  20. 20. Спасибо за вниманиеemail: mokevnin@gmail.comblog: www.wddx.ruКайдзен www.kaize.rutwitter.com/mokevnin

×