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

k8s использование переменных окружения/ Config map / Secret

Так мы зададим 2 переменные LANGUAGE и API_KEY apiVersion: extensions/v1beta1 kind: Deployment metadata: name: envtest spec: replicas: 1 template: metadata: labels: name: envtest spec: containers: — name: envtest image: gcr.io/<PROJECT_ID>/envtest ports: — containerPort: 3000 env: — name: LANGUAGE value: «English» — name: API_KEY value: «123-456-789» Можем их использовать например в js файле var http = […]

Read More &#8594

k8s google логирование

Если кластер уже создан и надо включить логирование в stakdriver: gcloud beta container clusters update [CLUSTER_NAME] —logging-service logging.googleapis.com Чтобы проверить что логирование включено kubectl describe node $NODE_NAME Должны увидеть Name: NODE_NAME Role: Labels: beta.kubernetes.io/fluentd-ds-ready=true Для проверки можно поднять под, который просто срет в логи kubectl create -f https://k8s.io/examples/debug/counter-pod.yaml Посмотреть логи можно тут: Stackdriver > Logging […]

Read More &#8594

Kubernetes операторы

Типы приложений stateless  — когда данные находятся в контейнере statefull — когда данные должны быть сохранены, например (Mysql, Elasticseatch, Mongo…) Полный список уже поддерживаемых оперторов: https://github.com/operator-framework/awesome-operators Статья, которая описывает механизм операторов: https://habr.com/company/flant/blog/326414/

Read More &#8594