Vladimir
Я уже 100 раз рассказал же
Anonymous
Может кто подсказать - что не так с инвентори в yaml
$ cat inventory.yml
all:
vm:
ubuntu-bay10:
ansible_ssh_host: 192.168.80.36
ansible_ssh_user: root
$ ansible -i inventory.yml -m shell -a 'uname -a' vm
[WARNING]: provided hosts list is empty, only localhost is available
$ ansible --version
ansible 2.1.1.0
Vladimir
файл hosts ...
Vladimir
А стоп все верно не то
Vladimir
мета для ansible galaxy а не для ansible playbook
Vladimir
Anonymous
Vladimir
и скидывай на пастбин или что то подобное читать не удобно
Nklya
Мета нужна для Галакси, чтобы он сам выкачал
Vladimir
Я уже писал это ему
Vladimir
А playbook ругается значит там и есть проблема с синтаксисом!
Vladimir
ansible-playbook не читает твой файл МЕТА
Nklya
Не читает ансибл плейбук никакую мету. Нахер надо оно ему?
Vladimir
Vladimir
Nklya
Вот и пропиши все в reqyuirements и не занимайся странным
Vladimir
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_reuse_roles.html#using-roles
Nklya
Как говорится, PRs are welcome
Vladimir
Переменные и факты же ну
Nklya
Странные решения рождаются из странных задач
bebebe
что-то утомительно как-то, давай начнем с простого
bebebe
какую проблему вы решаете?
Nklya
Requirements можно делать разные
Nklya
Ну и в разных ветках наверное будут разные requirements?
bebebe
это решается при помощи докер контейнеров, собираете для разных веток, разных репозиториоев контейнеры с разными метками:
ansible-env:master
ansible-env:stable
ansible-env:<COMMIT_ID>
запускаете вашу плейбуку так:
$ export LABEL=stable
$ docker run --rm ansible-env:${STABLE} ansible-playbook /path/to/playbook.yml
bebebe
артефакты в виде контейнеров вам должен деливерить сам CI
Nklya
И что?
bebebe
это один из бест-практисов, либо пригласите в чатик сюда человека который вам инфру делает, я ему объясню за жизнь
bebebe
это абсолютно ровно и хорошо ложится в мой подход которы я описал вам выше
bebebe
еще раз, на мой взгляд, у вас проблема не совсем ансибла, а подхода к процессу, тут скорее нужен @devops_ru чатик или похожее
Nklya
Роли тестируются сами по себе
Vladimir
В gitlab ci есть переменные и инваерменты для таких вещей
Vladimir
Где ты можешь указать если из мастера то такое то делать и такие переменные
Vladimir
Вы решаете проблему CI CD через ansible
Vladimir
https://docs.gitlab.com/ee/ci/environments.html
Vladimir
В gitlab ci все достаточно гибко и просто, а про jenkins я не знаю.
Vladimir
Но думаю там такое тоже решается
Vladimir
Гелакси
Vladimir
Это как github для git
Nklya
Вы прослушали час наркомании
Vladimir
kbks
Господа, такой вопрос возник. Есть кластер с приложением, перед которым стоит nginx в качестве балансировщика. Все ноды кластера прописаны в апстриме. При деплое новой версии приложения надо по одной вытаскивать ноды из апстрима, апдейтить и возвращать обратно. Есть ли какой-нибудь цивилизованный способ это делать?
kbks
мне в голову приходит только костыль с shell: 'sed ...."
Vladimir
Делегировать на хост менять темплейт по ходу я думаю как то так
Vladimir
Для этого нужен consul же
Dennis
подскажите как делать проверку переменной и если её нет то не выполнять блок
вот такая конструкция фейлится
{% if bgp.network is not undefined %}
jfjfjfjfjf
{% endif %}
такая тоже
{% if bgp.network is defined %}
jfjfjfjfjf
{% endif %}
kbks
пойду посмотрю что есть подходящего в инфре. спасибо.
Tadeusz
покажешь?)
bebebe
Vladimir
покажешь?)
https://www.nginx.com/blog/service-discovery-with-nginx-plus-and-consul/
Tadeusz
нарисовать на бумаге и я могу
Tadeusz
я про луашный код говорю
bebebe
Вообще у nginx есть health check backend
bebebe
Можно да и openresty
Tadeusz
мне интересно, как consul-template можно заменить lua’шечкой
Tadeusz
благодарствую
bebebe
Tadeusz
ну это всего-лишь апстримы 🙂
Tadeusz
это не удалит и не добавит новые location’ы, в отличии от consule-template'а
bebebe
bebebe
можно хоть весь роутинг location'ов в базе держать
Vladimir
https://github.com/weibocom/nginx-upsync-module
Vladimir
А не лучше с плагином тогда собрать nginx и юзать
bebebe
вообщем до сих пор не понятно причем тут ansible
Tadeusz
Павел
Доброго времени суток!
Подскажите, пожалуйста, есть такая вот хреновина: https://github.com/mobz/elasticsearch-head
С помощью Ansible стягиваю на сервер эту репу,
Затем его с помощью command: 'npm install'
После этого, нужно запустить команду nohup npm run start &. РУчками оно запускается и работает в фоне как надо. Ансибл же не может запустить это, так как привыполнении npm пытается понять, что ж за & такой
Ошибка:
npm ERR! elasticsearch-head@0.0.0 start: `grunt server \"&\"
Vladimir
https://docs.ansible.com/ansible/latest/modules/npm_module.html
Vladimir
Для npm есть модуль
Sergey
Sergey
и так делать не надо опять же - делается unit минимальный для systemd.
Nklya
Nklya
Ансиблом запускать сервисы без системд это успех
Nklya
И будет он бесконечно ждать когда жаваскрипт упадёт
Nklya
Хотя, может даже дождаться
Алексей
Не, ну можно просто в лоб - сделать скрипт с этой командой и запустить его. Всё должно по идее отработать. Костыль конечно.
GithubReleases
ansible/ansible was tagged: v2.6.0rc5
Link: https://github.com/ansible/ansible/releases/tag/v2.6.0rc5
Release notes:
New release v2.6.0rc5
Timur
kbks
почитаю. спасибо.
kbks
Это что делать перед и после апгрейда ноды. Т.е. в моем случае pre-tasks - убрать ноду из апстрима, и post-tasks вернуть ноду в апстрим после деплоя. Больше интересовало способы как ее убрать. Мне кроме парсинга конфига и релоада нджинкса ничего не приходило в голову.