Chef data bag

Data bag используется для хранения паролей и секьюрныхданный Пример с mysql Создаем файл { «id»: «mysql», «root_password»: «fakerootpassword» } Получить доступ можно так passwords = data_bag_item(‘passwords’, ‘mysql’) # Configure the MySQL client. mysql_client ‘default’ do action :create end # Configure the MySQL service. mysql_service ‘default’ do initial_root_password passwords[‘root_password’] action [:create, :start] end data_bag_item — загружает […]

Read More &#8594

Chef добавить строку в файл

Простые варианты bash «insert_line» do user «root» code <<-EOS echo «172.22.0.47 www.example.com» >> /etc/hosts EOS not_if «grep -q www.example.com /etc/hosts» end или ruby_block «insert_line» do block do file = Chef::Util::FileEdit.new(«/etc/hosts») file.insert_line_if_no_match(«/www.example.com/», «www.example.com») file.write_file end end Правильный вариант, добавление при помощи рецепта Добавляем в файл metadata.rb , в рецепт который будет добавлять строки: define ‘line’ https://github.com/sous-chefs/line […]

Read More &#8594

Chef интеграция с xen

Необходимо установить gem https://github.com/spheromak/knife-xapi gem install knife-xapi После этого настроить на knife.rb, добавив туда переменные с адресом xen и паролем current_dir = File.dirname(__FILE__) log_level :info log_location STDOUT node_name «jenkins» client_key «#{current_dir}/jenkins.pem» chef_server_url «https://chef.neklodev.com/organizations/neklo» cookbook_path [«#{current_dir}/../cookbooks»] #trusted_certs_dir «#{current_dir}/trusted_certs» ssl_verify_mode :verify_none knife[:xapi_host]=»http://192.168.128.12″ knife[:xapi_password]=»pass» knife[:ssh_port]=»22″ knife[:ssh_password]=»pass» knife[:chef_node_name]=»https://chef.neklodev.com» Чтобы создать ноду, выполняем команду knife xapi guest create «eduard-test-chef» «Network […]

Read More &#8594

Chef ruby, работа с json

Для того чтобы читать json нужно использовать цикл и работать как с коллекцией, пример: a = { «deploy»: { «magento»: { «application»: «magento», «application_type»: «php», «scm»: { «revision»: «master» }, «group»: «www-data», «user»: «www-data», «keep_releases»: 3, «robots»: { «server_func»: «admin», «sitemap»: «http://www.luluandgeorgia.com/sitemap/sitemap.xml» }, «var_path»: «/srv/var», «amfpclocal»: { «host»: «lulu-prod.7ddf4w.ng.0001.usw2.cache.amazonaws.com» }, «magento_config»: { «just_disable_logs»: false, «install_date»: […]

Read More &#8594

Chef metadata.rb

Служит для контроля версий, для указания автора Версия состоит из MAJOR.MINOR.PATCH MAJOR — новые возможности, не совместимые с предыдущей версией (incompatible) MINOR — новые возможности, но полностью совместимы со старой версией (backwards-compatible) PATH — это фиксы багов к текущей версии Пример файла name ‘custom_apache’ maintainer ‘Chef Software, Inc.’ maintainer_email ‘training@chef.io’ license ‘Apache-2.0’ description ‘Installs Apache […]

Read More &#8594

Chef работа с cookbooks

Версии cookboos мы описываем в metadata.rb После внесения изменений надо изменить версию и загрузить кукбуки на сервер knife cookbook upload Просмотреть список cookbook можно так (там же отображается и версия) knife cookbook list

Read More &#8594