Sergey
Ruslan
это файлик с переменными зашифрованный vaultom
Ruslan
в файлике
greenplum:
user: gpadmin
password: test
Sergey
Это словарь.
Aleksandr
Господа, как красиво с помощью ансибла при накатке конфигурации откатиться на предыдущую версию если что-то пошло не так?
Alex
ансибл это не про откаты
Артём
git revert
ansible-playbook
не?
Артём
Ансибл-то, понятно, не знает про «прошлую» ничего.
Alexey
Aleksandr
ну например есть syslog-ng. я по коммиту в мастер хуком дергаю ансибл, он выкатывает новые конфиги на сервера. Потом можно будет получить статус сервиса и если он не в состоянии running, откатиться.
Aleksandr
т.е. вы рекомендуете делать откаты руками, не превращать ансибл в мониторинг, верно?)
Denis 災 nobody
https://miro.medium.com/max/1370/1*7LsMrODw5XIZmupadZ9U1w.png
Timur
Timur
Т.е. к репе с плейбукой и конфигами прикрутить тесты, которые будут разворачивать эти конфиги на тестовый энв и проверять, что все работает как ожидается.
Aleksandr
соглы, звучит убедительно
Timur
Тогда вероятность того, что при накатывании на рабочий энв конфиг окажется нерабочим, стремится к нулю
Timur
Молекула для этого и придумана
Aleksandr
я еще не уметь в молекулу, хотя видел-слышал. но за посыл спасибо, будем работать в этом направлении
Timur
Aleksandr
а он остановит выкатку если тесты не пройдут?
Timur
Aleksandr
молекула запускается отдельно в пайплайне, потом по результату можно уже будет продолжать или нет, так?
Timur
Timur
Но мне сложно давать конкретные советы, не зная специфики проекта, структуру репозиториев, сценарии развертывания и т.п.
Ruslan
Anonymous
https://docs.ansible.com/ansible/latest/modules/pip_module.html
Anonymous
вопрос там модуль на centos7 вызовет пип который штатный ? второго питона или не штатный если поставить третий ?
Anonymous
и можно ли как то вызвать нужнуюверсию пип ?
Anonymous
а. да нашел кажеться так virtualenv_python
Aleksandr
или executable
Anonymous
спасибо
Anonymous
да через нее и делаю
⎈
⎈
Aleksandr
Александр
как сделать ансиблом yum update?
George
https://docs.ansible.com/ansible/latest/modules/yum_module.html
Александр
Alexey
ага, спасибо
update_only
boolean
added in 2.5
Choices:
no ←
yes
When using latest, only update installed packages. Do not install packages.
Has an effect only if state is latest
UglyKoyote
Народ, а вот поднимите руку.. кто юзает package заместо yum? Просто хочется понять, есть ли минусы у package
/warn
Привет. Возникла такая проблема. Захожу на хост и даю комманду sudo docker ps -qf "name=contrail_command"
Результатом получаю номер контейнера: f4ebb5daf674
Делаю то же самое ансиблом:
- name: get command contrailner number
shell: 'docker ps -qf "name=contrail_command"'
register: container_number
И вот резульат:
{'stderr_lines': [], u'changed': True, u'end': u'2019-11-13 10:08:57.339642', 'failed': False, u'stdout': u'', u'cmd': u'docker ps -qf \"name=contrail_command\"', u'rc': 0, u'start': u'2019-11-13 10:08:57.257195', u'stderr': u'', u'delta': u'0:00:00.082447', 'stdout_lines': []}
Почему stdout пустой? Не могу понять.
Timur
Привет. Возникла такая проблема. Захожу на хост и даю комманду sudo docker ps -qf "name=contrail_command"
Результатом получаю номер контейнера: f4ebb5daf674
Делаю то же самое ансиблом:
- name: get command contrailner number
shell: 'docker ps -qf "name=contrail_command"'
register: container_number
И вот резульат:
{'stderr_lines': [], u'changed': True, u'end': u'2019-11-13 10:08:57.339642', 'failed': False, u'stdout': u'', u'cmd': u'docker ps -qf \"name=contrail_command\"', u'rc': 0, u'start': u'2019-11-13 10:08:57.257195', u'stderr': u'', u'delta': u'0:00:00.082447', 'stdout_lines': []}
Почему stdout пустой? Не могу понять.
become: true забыли?
/warn
Стоит уровнем выше.
- hosts: all
connection: local
become: true
roles:
- deploy-frontend
/warn
Или нужно именно в такс?
Timur
Timur
Или вы тупо из-под рута запускаете ансибл?
/warn
Есть права, судо без пароля.
/warn
Jenkins запускает плейбук, вот таким образом:
ansible-playbook command-ui/ansible/deploy-frontend.yaml -i inventory.ini --private-key /go/src/merge/command-ui-535/vendor/github.com/Juniper/contrail-ui/ssh10314666989485569463.key -u centos -e BUILD_NUMBER=535
Timur
/warn
Могу убрать. Из-за этого проблема?
Timur
Зачем понадобился docker ps через shell?
/warn
Подменить файлы внутри контейнера
Timur
Э?
Timur
Опишите задачу более внятно, пожалуйста
Timur
Потому что совершенно непонятно, как docker ps помогает менять файлы внутри контейнера.
Timur
Не говоря уже о том, зачем вообще это делать внутри контейнера
Artem
Привет. Возникла такая проблема. Захожу на хост и даю комманду sudo docker ps -qf "name=contrail_command"
Результатом получаю номер контейнера: f4ebb5daf674
Делаю то же самое ансиблом:
- name: get command contrailner number
shell: 'docker ps -qf "name=contrail_command"'
register: container_number
И вот резульат:
{'stderr_lines': [], u'changed': True, u'end': u'2019-11-13 10:08:57.339642', 'failed': False, u'stdout': u'', u'cmd': u'docker ps -qf \"name=contrail_command\"', u'rc': 0, u'start': u'2019-11-13 10:08:57.257195', u'stderr': u'', u'delta': u'0:00:00.082447', 'stdout_lines': []}
Почему stdout пустой? Не могу понять.
Я помню ловил тоже примерно такие ошибки с любыми докер командами. помогло уход от вызова докер команд под рутом, всё таки best practice.
/warn
Jenkins раннит билды, в результате есть папка dist с файлами, нужно взять эти файлы, и засунуьт внутрь контейнера.
Моя логика:
1. Переместить файлы на целевой хост
2. Узнать номер контенера( через этот docker ps)
3. Преместить файлы в нужный контейнер через docker cp
Зачем это нужно? Есть backend к которому нужно закинуть файлы фронтендовые, которые получились в результате билда, и потом запустить end-to-end тесты.
Timur
Отделение Bereke Bank
я не эксперт но мне кажется у вас билд через ж...
Timur
Если у вас в докере приложения, то логично и деплоить их в виде докера сразу
Timur
А лезть внутрь работающего докера после деплоя - нафиг тогда вам докер, спрашивается?
/warn
Это open source который юзают люди,а не апликация которая стоит у нас на сервехар , нам нужно только запустить тесты для CI.
Timur
/warn
Окей. Сейчас обьясню
Отделение Bereke Bank
Alex
/warn
Есть стак.
Jenkins, Gitlab, Openstack.
Есть репозиторий который содержит frontend для приложения.
Помимо frontend, есть огромный бекенд который собирать ~12 часов.
Раньше когда кто-то делал комит, или отрывал Merge request - надо было ждать по 12 часов пока соберётся backend, и потом пока пройдут тесты.
Новый концепт:
Собирать backend на релизе, и создавать image с готовым backendом в openstack.
Теперь когда кто-то открывает MR - можно поднять VMку с готовым бекендом, закинуть туда файлы фронтенда и запустить тесты на selenium.
/warn
Итого - время ожидания минус 12 часов.
/warn
Поэтому мне нужно закинуть файлы в определённый контейнер(а их там штук 40-50), что того что бы запустить тесты для UIки.
UglyKoyote
Вопрос: есть пакет А, который ствится без проблем, по дефолту прописывает юзеру uid xxxx, но сложилась ситуация что на одной из машин, куда ставится пакет - уже есть юзер с uid xxxx, и юзер получил uid xxxy. Меня это не устраивает, поскольку uid должен быть везде одинаковый.
Кроме ручного действия пока не вижу как решить ситуацию, или вариантов и нету при использовании пакета yum?
Timur