Ждун
помгло winrm confifSDDL default + http://www.continualintegration.com/miscellaneous-articles/how-do-you-troubleshoot-the-powershell-error-cannot-connect-to-cim-server-access-is-denied/
Ждун
про пермишены winrm configSDDL default прочитал в доках https://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html
Ждун
это потому что по умолчанию доступ есть у Administrators, а для домен контроллера я не хотел админа давать
Evgenii
если кому интересно, то решил вопрос так: when: not var | search('Z') или when: var is not search('Z')
Sergey
Коллеги, подскажите плиз а есть ли для ансибла какой плагин или модуль для слежения состояния деплоймента в кубернетис. Ну к примеру задеплоил я хельмом приложульку но хельм не следит он просто выплюнул манифест и ему пофиг
Sergey
Вот хотел узнать мож есть какие решения которые вотчат деплоймент если в течении какого то времени он не перешёл в статус реди то фейлить деплой если все ок идём дальше
Aleksei
В самом деплойменте можно добавить livenessprobe
Sergey
Так неинтересно
Sergey
Хочется на уровне деплоя еще когда ансибл плейбука идёт понимать что деплоймент задеплоился и запущен
Sergey
Тоесть простыми словами если деплоймент не реди то хочется чтобы фейлилась запущенная ансиблом плейбука
Sergey
Если реди то идём дальше
Nikus
получать json от кубера по нужному деплойменту и парсить его
Sergey
Ну блин как то это колхозно
Sergey
Разве никто не разу не придумал модуль )))
Sergey
Вообще очень печально что у ансибла для кубернетиса как то печально и не гибко
Sergey
Один модуль для взаимодействия и то бесполезный
Sergey
Вот и приходится через шел модуль дергать другие приложульки типа helm
Denis
😁 https://github.com/kubernetes-client/python/issues/571#issuecomment-405890791
Sergey
Блин))) вот почему так все печально)))) без костылей опять никак) ведь этож очевидно что после деплоя нужно проверить почему до сих пор нет модуля для ансибла типа k8s watcher
inqfen
Вообще есть https://docs.ansible.com/ansible/latest/modules/k8s_info_module.html#k8s-info-module
inqfen
Можешь тут объекты получать и как-то обрабатывать
Alex
а сталкивался кто с таким поведением модуля uri TASK [itests/jfxr : Download JFXR bundle v.3.2.2-m063] *** changed: [app_master] => changed=true attempts: 1 checksum_dest: 50f933867124c16f84724eb3925d88a6b2452c10 checksum_src: 1d04795b9916b5911fcb7e6d3031395a4641df36 dest: /opt/xray-3.2.2-m063-rpm.tar.gz elapsed: 122 gid: 0 group: root md5sum: 6225dbefd6b593f1fbd921700fa351d9 mode: '0755' msg: OK (486867409 bytes) owner: root secontext: system_u:object_r:usr_t:s0 size: 42509870 src: /root/.ansible/tmp/ansible-moduletmp-1584024697.87-TZF3vT/tmpm0dZLD state: file status_code: 200 uid: 0 url: https://www.mydomain.io/xray-rpm/3.2.2-m063/xray-3.2.2-m063-rpm.tar.gz вроде все ок, но следующий таск по распаковке фейлится TASK [itests/jfxr : Extract JFXR bundle v.3.2.2-m063] *** fatal: [app_master]: FAILED! => changed=false msg: Failed to find handler for "/opt/xray-3.2.2-m063-rpm.tar.gz". Make sure the required command to extract the file is installed. Command "/bin/gtar" could not handle archive. Command "/bin/unzip" could not handle archive.
Alex
WTF
Alex
# ls -la xray-3.2.2-m063-rpm.tar.gz -rwxr-xr-x. 1 root root 42509870 мар 12 14:53 xray-3.2.2-m063-rpm.tar.gz размер архива явно не соответствует msg: OK (486867409 bytes)
Alex
get_url https://github.com/ansible/ansible/issues/50719#issuecomment-453179370
ошибся, у меня таки get_url, ansible 2.9.5
Gordon
немного нубский вопрос, но yml синтаксис предполагает многострочные комментарии ?
Pavel
Коллеги, поясните по доступности переменной пожалуйста. Если переменная объявлена через get_fact на локальной машине, она будет доступна на удаленной в рамках одного сценария? или требуется доп действие для ее доступности на другом узле?
Timur
Хранятся в словаре hostvars, да
Alex
если файл удалить, то закачивается нормально, при повторном прогоне тоже все ок, не пойму как такое отлавливать?
Pavel
а обращение к ней идет по имени объявления? поясню примером - set_fact: grafanaapikey: "{{ lookup('file', '/grafana/keys/admin.key') }}" delegate_to: 127.0.0.1 теперь хочу эту переменную использовать на другом хосте - name: Import Grafana dashboards from module grafana_dashboard: grafana_url: "http://{{ ansible_fqdn }}:3000" grafana_api_key: "{{ grafanaapikey }}" # uid: UVCN1WXWz state: present overwrite: yes path: "/grafana/dashboards/influxdb/icinga2-default.json" и идут ошибки при исполнении, но как только задачу импорта делегирую на локалхост - все хорошо.
Alex
grafana_api_key: "{{ hostvars['localhost']['grafanaapikey'] }}"
Alex
я не знаю ее за ранее
Alex
Чексумму проверять, не?
checksum_dest: 50f933867124c16f84724eb3925d88a6b2452c10 checksum_src: 1d04795b9916b5911fcb7e6d3031395a4641df36 но странно, что при расхождении, таск все равно считается выполненным
Tadeusz
вон посоны костылят операторов в k8s на GOвне и не парятся
tutunak
Разве никто не разу не придумал модуль )))
Ну так ты можешь стать тем кто придумает. Этож опенсурс
Sergey
Вот и приходится через шел модуль дергать другие приложульки типа helm
Если все предпочитают хрычевать по чатам за модули, а не писать их - так всё и останется 😉
Alexander
Во, раз тут специалисты по написанию модулей подтянулись, повторю вопрос. Подскажите, пожалуйста, есть ли возможность в коде модуля указать, что он должен выполняться на контроллере ansible? Можно, конечно, каждый раз указывать в плейбуке connection: local, но это странно. И второй вопрос: возможно ли из кода модуля получить доступ к переменным (например inventory_hostname) не передавая их явно? Спасибо.
inqfen
https://docs.ansible.com/ansible/latest/plugins/plugins.html
inqfen
Второе - вроде как-то только через жопу
Alexander
Спасибо! А как гвоздями прибить плагин к модулю?
Alexander
Т.е. я понимаю что указывая connection: local я использую плагин соответствующий, но это указывается вне модуля
inqfen
Эм, не надо ничего прибивать
inqfen
Модуль который выполняется на контроллере называется плагин
inqfen
Почитай гайды по разработке, там в доках есть
Alexander
Понял ход мысли, спасибо. Но использовать плагин для задачи, например, конфига схд- некорректно с точки зрения разделения элементов ансибла, как я ее понимаю. Плагин не выполняет действий вроде как
inqfen
Вообще может выполнять действия, только тут именно плагин таки некорректно юзать
inqfen
Это модуль, а то что он запускается на контроллере - частный случай
Alexander
Ну если это модуль конфигурации внешнего устройства - он не может запускаться иначе, как на контроллере. Это не частный случай а норма, но для конкретного модуля
Alex
force: true пробовали?
нет, попробую. Я правильно понял, что если в dest указать файл, то проблем можно избежать и без force?
Alexander
Ехать оно у меня едет на плейбуках и модуле raw, теперь очередь за шашечками и таксометром в виде модуля, который будет изолировать логику, красив и удобен . За наводку на template спасибо
Gordon
Ребят, может кто подсказать на практике, например, есть компактный баш скрипт, его можно либо загрузить и через комманд или шелл запустить на месте, либо весь переписать в моудлях, загружать скрипт и исполнять быстрее но получается это своего рода "костыль" , нежели реализовывать все через модули, кто как поступает интересно?
Sergey
А если можешь что-то сделать хорошо, через модуль - лучше через модуль. Интерфейс с основным кодом простейший.
Gordon
Зависит от задачи. Некоторые вещи, типа работы с постгресом, ванильным ансиблом в принципе не делаются - там и скриптогадить приходится.
а какой-нибудь wget, работа с архивами, создание/удаление директорий, добавление ключей и репов в пакетный менеджер?
Gordon
для этого всего уже есть модули
понял, спасибо, буду пробовать через модули
manefesto
У меня есть сервера, причем разношерстные по железу, везде centos И имена сетевых интерфейсов везде разные Хочу в inventory сделать что-то вроде 192.168.100.10 eth1=enp0s3 eth2=enp0s8 Как мне потом можно использовать это в подмене переменных ? То есть чтобы {{ansible_{{eth1}}.ipv4.address}} раскрывался в {{ansible_enp0s3.ipv4.address}}
manefesto
Вот
manefesto
@tnt4brain ты точно знаешь
manefesto
похоже нашел =) https://docs.ansible.com/ansible/latest/plugins/lookup/vars.html
Sergey
@tnt4brain ты точно знаешь
Ну ты и сам вроде не промах, а используешь INI-инвентори... Брось каку в угол к Win3.1
Maksim
КМК удобная вещь, все на виду
Timur
КМК удобная вещь, все на виду
Переменные в виде словарей и списков там задавать нормально невозможно