Elasticsearch unassigned shards

Смотрим какие индексы имеют статус unassigned curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED Дальше выгружаем карту индекса в файл curl -XGET http://127.0.0.1:9200/m2devlogs-2018.10.23/_mapping?pretty > m2devlogs_my_mapping23.json Редактируем файл и превращаем его в шаблон,  заменяя шапку на { «template» : «*», «version» : 60001, «settings» : { «index.number_of_replicas» : 0, «index.number_of_shards» : 1, «index.refresh_interval» : «5s» }, «mappings»: { «_default_»: […]

Read More &#8594

Ansible основы

ansible.cfg — файл конфигурации mytasks.yml — файл выполняемых команд requriments.txt — файл с описанием зависимостей inventory — файл содержащий хосты с которыми работаем, может быть динамическим, можно переопределить данные заданные в ansible.cfg, описание в формате ini, можно создавать группы и группы из групп Playbook — состоит из play (одно действие) Можно использовать переменные, есть системные […]

Read More &#8594

Docker несколько сервисов supervisor

Устанавливаем supervisor в докер контейнер apt-get install supervisor В конце добавляем скопировать конфиг и запустить COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf CMD /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf [supervisord] nodaemon=true [program:sendmail] command=/bin/bash -c «exec /usr/sbin/sendmail -bD -X /proc/self/fd/1» autostart=true autorestart=true [program:apache2] command=apache2ctl -D «FOREGROUND» -k start redirect_stderr=true autostart=true autorestart=true Этот конфиг запустит sendmail и apache, Будет следить чтобы ничего не упало

Read More &#8594

terraform модули

Необходимы для того чтобы разделить операции и не закидывать все в один Для того чтобы сменить тип инстанса, надо явно указывать загрузочный диск и не удалять его при удалении машины, после того как сменим тип диск не сотрется, запустится новая машина

Read More &#8594

terraform data source and remote backend

data «aws_ami» «image» { most_recent = true filter { name = «name» value = [«ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64*»] } } module «web» { ami = «${data.aws_ami.image.id}» source = «modules/web» pub_key_path = «${var.pub.key.path}» … remote backend — необходим для хранения state файла, чтобы не хранить его в гите или на локальном компьютере terraform { backend «s3» { bucket = […]

Read More &#8594

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

Groovy bash команда

Выполнить команду через bash и отдать результат: def RoleList = [] def command = »’knife role list | grep -v chef-client»’ def proc = [‘bash’, ‘-c’, command].execute() proc.waitFor() proc.in.eachLine { line -> RoleList.add(line) } return RoleList  

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