Victor
Либо как вариант косяк в синтаксисе где-то внутри инвентори
Victor
Особенный сервер в группу можно не выделять, можно его напрямую указать.
Павел П.
Ну либо их там нет, либо этот инвентори не используется.
проверил, есть записи о серверах, без косяков, и инвентори явно указываю.
Victor
проверил, есть записи о серверах, без косяков, и инвентори явно указываю.
Можно вывести спискок все серверов и групп и посмотреть что там
Павел П.
потому и не понимаю где мог ошибиться
Victor
Типо посмотреть список групп - hosts: localhost tasks: - name: show configured host groups debug: msg: "{{ groups.keys() }}" И список групп для каждого хоста - hosts: all gather_facts: false tasks: - name: show host groups debug: var: group_names
Павел П.
спасибо! ковыряю.
Alexander
Привет всем! Работал ли тут кто-то с Ansible Python API? Пытался завести его по разным гайдам - большая часть устарела, единственная страничка с документации тоже не помогла. В доках: https://docs.ansible.com/ansible/latest/dev_guide/developing_api.html Другой пример: https://medium.com/ianyc/ansible-python-api-example-8d5238f1155d У меня не завелся ни TaskQueueManager, ни PlaybookExecutor. С первым код просто отрабатывает без какого-то вывода через results_callback, с экзекьютором в модуле site-packages/ansible/utils/ssh_functions.py вываливается с трейсбеком (возможно баг)
Alexander
Если кто-то с этим работал и есть рабочий пример кода/гайд хотя бы на конкретной версии ансибла и python>=3.7 - буду очень благодарен. Да, вот еще попытка по второму гайду, ансибл я ставил версии, указанной в нем (из чего предполагаю, что проблема в поддержке питона) https://pastebin.com/dFSfY6w7
Павел П.
ansible_hostname и inventory_hostname - разные вещи
я их не указываю. Я явно пишу в плейбуке - name: do b hosts: my-servername.bla.bla roles: - myrole2 Этот сервер явно прописан в inventory файле my-servername.bla.bla ansible_ssh_host=192.xxx.xx.xxx
Andor
cat ./test_multiline.yml 0 < 13:30:40 #!/usr/bin/env ansible-playbook - hosts: localhost tasks: - name: test multiline shell: > echo some-text
ты можешь использовать не > а |, тогда из строк не будет удаляться перевод строки
Nikolay
Ребята. IaC это прекрасно, но он может быть еще тем говнокодом. Например через какое-то время при росте инфраструктуры ansible плейбуки начинают превращаться в фарш. Кроме best practices в доке ansible существуют какие-то паттерны по организации плейбуков? Что-то на эту тему. Или тут уже на откуп фантазии админа? Сами роли небольшие и каждая делает одну задачу, но ролей много.
Андрей
Это разве много?
Nikolay
Это разве много?
я не говорил про много.
Nikolay
Чтобы поменялось, если бы было 1000
Андрей
ничего
Victor
https://yaml-multiline.info/
Видел, но штука полезная, да
[IPT] Dmitry
ага, наглядно, для самых маленьких
Victor
если какой-нибудь << EOF то понятное дело что не надо. А если прост, то не вижу смысла загораживать вид.
Andor
можно
Vladislav 👻
подскажите, можно как-то ansible cli распарсить красиво? например, вот надо мне проверить, стоит ли пакет на хостах, я дергаю например yum модуль и получаю пачку не до json, как бы их красиво распарсить и получить простой результат "хост-результат"?
Andor
сложи в файл вывод прямо ансиблом
Vladislav 👻
эммм, это как?
Vladislav 👻
я дергаю cli, а не плейбук, если что
Victor
эммм, это как?
модуль template
Andor
ну ты через register можешь получать статус пакета и через delegate_to: localhost класть статус например в файл на локалхосте где запущен ансиболь
Vladislav 👻
Victor
я запутался
Timur
Vladislav 👻
так, еще раз, я не пишу таску, мне надо просто по фасту проверить на хостах установлен ли пакет, пишу из серии ansible group -i inventory -m yum -a "list=python36u" --becom, как мне распарсить результат, чтобы было "хост-статус пакета"
Victor
можно навелосипедить через какой-нибудь sed или awk, но это такое себе
Sergey
вот так делаю) - chmod -R 0700 ~/.ssh - echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa
Заменишь ~ на нормальный путь "/root" - всё поедет. Почему ты не используешь нормальный путь?
Vladislav 👻
чтобы я видел
Timur
чтобы я видел
А так вы не видите?
Vladislav 👻
сложная многострочность
Timur
сложная многострочность
Еще раз. Для чего вам список пакетов?
Vladislav 👻
не список пакетов
Vladislav 👻
мне важен список хостов и статус пакета на хосте
Timur
Ок. Зачем вам статус пакета?
Vladislav 👻
Ок. Зачем вам статус пакета?
это к проблеме не относится
Timur
это к проблеме не относится
А в чем проблема ответить? Это секрет?
Victor
вполне
Но он просто скипнет, а не напишет что нет таких хостов.
Vladislav 👻
А в чем проблема ответить? Это секрет?
в целом да, не в целом, мне нужен список, для чего - не суть
Vladislav 👻
если я вам отвечу, что это будет вставлено в гугл док в таблицу, думаете от этого поменяется суть?
Timur
http://xyproblem.info/
Vladislav 👻
само собой нет, если вы давите, что я что-то еще буду делать с этим списком в ансибл и надо писать таск, то я сразу по задаче написал, что это ad-hoc
Vladislav 👻
скорее предметный вопрос, но в целом, я удже понял, от вас всегда странные вопросы и без решения проблем
Timur
вот так делаю) - chmod -R 0700 ~/.ssh - echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa
Там бывают еще нюансы с конфигом и разными версиями клиента
Timur
Я бы не парился и делал через ssh-agent
Timur
Там гарантированно проблем с правами на ключ не будет
Timur
Либо работает ключ, либо нет
Timur
Ну, не хотите отвечать - как хотите
Timur
Просто на некоторые вопросы, судя по формулировке, отвечать бесперспективно, т.к. вместо проблемы обсуждается заведомо неправильно решение
Timur
Как эталонный пример
Kirill
лог?
fatal: [ip]: UNREACHABLE! => {"changed": false, "msg": "Data could not be sent to remote host \"ip\». Make sure this host can be reached over ssh: key_load_public: invalid format\r\nWarning: Permanently added 'ip’ (ECDSA) to the list of known hosts.\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ WARNING: UNPROTECTED PRIVATE KEY FILE! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0755 for '/root/.ssh/id_rsa' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"/root/.ssh/id_rsa\": bad permissions\r\nPermission denied (publickey,password).\r\n", "unreachable": true}
Kirill
не, было всегда 0755