Dmytro
Пока с таким не сталкивался
Dmytro
В плане healthcheck где веб я тож чекаю по локалхост
Oleg Y.
бытовые примеры касательно именно бэкенда: 1. неправильно сконфигурирован, условно - отвечает не на том порту 2. смотрит на неправильную базу, как вариант п.1 и отдает http 5xx 3. завис или долго отвечает
Dmytro
такие вещи это уже неверные трансформы и я получу по рукам)
Oleg Y.
ну и в таком духе
Dmytro
особенно за смотрит на неправильную базу))
Dmytro
по завис или долго отвечает - для этого есть prom + grafana что сладит за nginx
Dmytro
как и за status codes
Dmytro
ибо сервисов много и все в hacluster
Oleg Y.
мониторинг решает, да
Dmytro
все это в healthcheck не запихнешь
Dmytro
вернее как запихнешь но мои не хотят в хелсчек базу добавлять - не сесюрно можно и ddos вловить на свой же хелсчек
Dmytro
я с ними не согласен - можно ж чекать srcip = 127.0.0.1 или ::1, но что имеем то имеем
Oleg Y.
ddos снаружи на хелсчек?)
Oleg Y.
трафик снаружи должен приземляться на балансировщик, а он через себя хелсчеки не пропустит при грамотной конфигурации
Dmytro
да и так и на сервисе самом в коде можно loopback разрешать только для healcheck
Dmytro
не сумел уговорить
Oleg Y.
:( эх
Dmytro
боль devops-dev
Dmytro
на яву
Dmytro
Aleksey
я с ними не согласен - можно ж чекать srcip = 127.0.0.1 или ::1, но что имеем то имеем
гениально! можно выкинуть заббикс с монитами и все сделать на ансибле, котрый просто загнать в бесконечный цикл исполнения, чтобы кроном не дергать. и его запуск вписать в rc.local и потом уже бесконечно пить кофе! как я до такого сам не додумался... спасибо!
Dmytro
можно и им дергать curl + headers или python скрипт какой
Dmytro
и парсить output и передавать как одну переменную в zabbix
Dmytro
все же zabbix вам алармы сыпать будет
Dmytro
а ansible разве что если его к какомунибуть pushgateway на prometheus присобичите или напрямую к alertsystem аля dataduty etc или это был сарказм?))
Aleksey
можно и им дергать curl + headers или python скрипт какой
лишнее! все решит retries: 16000000 delay: 3 и можно год кайфовать. мне даное решение все больше и больше нравится
Dmytro
ну а если кто то сделает kill -9 ansible?)
Dmytro
найти и наказать?)
Grek 🇺🇦
ребята, хватит) хоть и тяпница, но уж сильно во флуд уходим
Aleksey
найти и наказать?)
нет! просто еще один ансибл плей, который будет проверять работу первого и там тоже retries и delay
Dmytro
recursion
Aleksey
ребята, хватит) хоть и тяпница, но уж сильно во флуд уходим
все. завершил. иначе подавлюсь от смеха)
Aleksey
я уже не первый раз тут встречаю кейс ансибл как сервис. сейчас, и чуть ранее было, когда дама предложила обсудить функционал ансибл загрузчика ансибл ролей с удаленного сайта. вопрос, никто не встречал описания ансибльных антипаттернов, типа бэд практис. чисто интересно нет ли такого описания, что в ансибле делать не надо
Oleg Y.
по "ansible antipatterns" многое гуглится
Aleksey
по "ansible antipatterns" многое гуглится
афигеть! спасибо! я обеспечен чтивом)
Anonymous
https://paste.ubuntu.com/p/Gtmr5wSXjw/
Anonymous
why not download my jar file
Anonymous
this is my username and token
Anonymous
Anonymous
i use maven_artifact model
Anonymous
for download
Grek 🇺🇦
Николай
https://paste.ubuntu.com/p/Gtmr5wSXjw/
Try to provide username and password as a module parameters, not a url part https://docs.ansible.com/ansible/latest/modules/maven_artifact_module.html#examples
Anonymous
https://paste.ubuntu.com/p/52NRp73NDS/
Anonymous
that's not gonna work either
Oleg Y.
seems that https://gitlab.com/api/v4/projects/19315665/packages/maven is not a valid repository URL, that is why you're facing the 404 Not Found error on metadata file.
Anonymous
no, this just is a maven url
Anonymous
https://paste.ubuntu.com/p/rqfVfd7JrC/
Anonymous
this is define my pom.xml , and i had deploy success
Oleg Y.
try to execute the same curl command from the 192.168.233.130 node, what is the result ?
Anonymous
[root@master ansible-playbook]# curl https://test01:mK_ybXcbj3xPpnagoszP@gitlab.com/api/v4/projects/19315665/packages/maven/com/geek/helloworld/1.0-SNAPSHOT/maven-metadata.xml <?xml version="1.0" encoding="UTF-8"?> <metadata modelVersion="1.1.0"> <groupId>com.geek</groupId> <artifactId>helloworld</artifactId> <version>1.0-SNAPSHOT</version> <versioning> <snapshot> <timestamp>20200612.114850</timestamp> <buildNumber>2</buildNumber> </snapshot> <lastUpdated>20200612114850</lastUpdated> <snapshotVersions> <snapshotVersion> <extension>jar</extension> <value>1.0-20200612.114850-2</value> <updated>20200612114850</updated> </snapshotVersion> <snapshotVersion> <extension>pom</extension> <value>1.0-20200612.114850-2</value> <updated>20200612114850</updated> </snapshotVersion> </snapshotVersions> </versioning> </metadata>
Anonymous
[root@master ansible-playbook]# ansible-playbook maven.yml PLAY [helloworld] ************************************************************************************************************************************************************************************* TASK [Gathering Facts] ******************************************************************************************************************************************************************************** ok: [192.168.233.130] TASK [downlod helloworld] ***************************************************************************************************************************************************************************** fatal: [192.168.233.130]: FAILED! => {"changed": false, "msg": "Failed to retrieve the maven metadata file: /com/geek/helloworld/1.0-SNAPSHOT/maven-metadata.xml because of HTTP Error 404: Not Foundfor URL https://gitlab.com/api/v4/projects/19315665/packages/maven/com/geek/helloworld/1.0-SNAPSHOT/maven-metadata.xml"} PLAY RECAP ******************************************************************************************************************************************************************************************** 192.168.233.130 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
Desdichado
because of HTTP Error 404: Not Foundfor URL ?
Anonymous
but i use curl can be response
Anonymous
curl https://gitlab.com/api/v4/projects/19315665/packages/maven/com/geek/helloworld/1.0-SNAPSHOT/maven-metadata.xml
Anonymous
you can try it
Anonymous
Anonymous
this is my gitab registry
Grek 🇺🇦
Desdichado
Try to compare urls
Anonymous
no , gitlab have access token
Mamun
hi everyone.. I am very new to ansible and wanted some very basic help and saw this channel and thought I'd join, apologies if I am talking too basic.
айтишник
Sorry bro, I do not understand
Гугл транслейт 😂
Full
Народ, вопрос созрел, возможно, несколько странный. Речь про awx. Решил попробовать отделить инвентори от всего остального. Сделал отдельное репо, выглядит как-то так: /files └─user.id_rsa /host_vars └─host.yml inventory.yml Есть отдельное репо, где лежат плейбуки. И вот заткнулся на добавлении ключей на хост. Таска: - name: Add Keys authorized_key: user: '{{ item.user }}' key: '{{ item.key }}' loop: '{{ users }}' become: true when: - users is defined item.key определен в инвентори так: key: "{{ lookup('file', 'user.id_rsa') }}" Ошибка - could not locate file in lookup. Хотя при поиске оно перебирает все каталоги file, которые можно найти. Пробовал вот так: key: "{{ lookup('file', inventory_dir + '/files.user.id_rsa') }}" Результат тот-же, только уже не перебирает пути, а ищет по указанному. Мне думается, все дело в том, что awx складывает все в /tmp до того, как запустить. Все, да похоже, что не все. С инвентори все хорошо, все переменные подтягиваются, но вот файлы из /files туда не попадают. Сижу, размышляю, как бы поступить... 1. Забить и сложить инвентори рядом с плейбуками. Мне это не нравится, т.к. я специально их разводил. Чтоб в awx был универсальный набор плейбуков, которые можно запускать с разными, не связанными инвентори. 2. Забирать ключи не через lookup ('file'), а через lookup ('url') прямо из гита. Придется писать километровые статичные урлы, но это сработает. Как придумать динамический урл с путем, относительно текущего репо, я не придумал. Можно, конечно, где-то в переменных путь к репо задать, и потом конкатенацией к нему имя файла цеплять. Ну, такое. Немного пятничной норкомании.
Op
Здравствуйте, подскажите, почему в списке драйверов молекулы нет vagrant? Молекулу ставил из pip, также поставил python-vagrant. В доке молекулы не нашел ничего об этом, кроме того что дефолтный список такой как у меня. Но судя по статьям в интернете такой драйвер есть и многие им пользуются. Мне в частности нужно тестировать роли, которые запускают docker-контейнейры. Возможно, vagrant для этого уже не лучшее решение? .venv > molecule create scenario -s filebeat -d vagrant 18:30 Usage: molecule create [OPTIONS] Try 'molecule create --help' for help. Error: Invalid value for '--driver-name' / '-d': invalid choice: vagrant. (choose from delegated, docker, podman)
Vladimir
Народ, вопрос созрел, возможно, несколько странный. Речь про awx. Решил попробовать отделить инвентори от всего остального. Сделал отдельное репо, выглядит как-то так: /files └─user.id_rsa /host_vars └─host.yml inventory.yml Есть отдельное репо, где лежат плейбуки. И вот заткнулся на добавлении ключей на хост. Таска: - name: Add Keys authorized_key: user: '{{ item.user }}' key: '{{ item.key }}' loop: '{{ users }}' become: true when: - users is defined item.key определен в инвентори так: key: "{{ lookup('file', 'user.id_rsa') }}" Ошибка - could not locate file in lookup. Хотя при поиске оно перебирает все каталоги file, которые можно найти. Пробовал вот так: key: "{{ lookup('file', inventory_dir + '/files.user.id_rsa') }}" Результат тот-же, только уже не перебирает пути, а ищет по указанному. Мне думается, все дело в том, что awx складывает все в /tmp до того, как запустить. Все, да похоже, что не все. С инвентори все хорошо, все переменные подтягиваются, но вот файлы из /files туда не попадают. Сижу, размышляю, как бы поступить... 1. Забить и сложить инвентори рядом с плейбуками. Мне это не нравится, т.к. я специально их разводил. Чтоб в awx был универсальный набор плейбуков, которые можно запускать с разными, не связанными инвентори. 2. Забирать ключи не через lookup ('file'), а через lookup ('url') прямо из гита. Придется писать километровые статичные урлы, но это сработает. Как придумать динамический урл с путем, относительно текущего репо, я не придумал. Можно, конечно, где-то в переменных путь к репо задать, и потом конкатенацией к нему имя файла цеплять. Ну, такое. Немного пятничной норкомании.
Обязательно item.key в инвентори определять?
Vladimir
Почему бы просто роль не написать?
Vladimir
Чтобы зависимости с инвентори не было
Vladimir
Ах да
Vladimir
Ой, июньский LDAP на Ansible :-)))
Vladimir
Да.
Тогда не подскажу, ибо не знаю Я написал рольку, у меня норм работает.