Александр
Timur
Это не про модуль уже
Александр
смотря какой модуль... (:
Timur
Ну, тут вон assemble у некоторых непреодолимые сложности вызывает...
Alexander
Например, если версия типа 0.4.7
В общем, я действительно вышел из положения тем, что номер версии оставил как есть, а вот зависящие от нее переменные уже нагенерил с помощью replace.
Alexander
Tadeusz
уважение.
Timur
Timur
Только дублирование кода - это плохо.
Timur
Я же не зря про дополнительную переменную сказал
Alexander
Alexander
Еще вопрос. Плейбук запускается на паре сотен компьютеров и некоторые из них недоступны. После выполнения в AWX он пишет статус таска как failed, хотя успешно было обработано >80% машин. Думал это с помощью max_fail_percentage исправить, но наверное это не то.
Alexander
Alexander
Вот такой же вопрос в Issue на гитхабе: https://github.com/ansible/awx/issues/527
Vadim
https://docs.ansible.com/ansible/latest/reference_appendices/playbooks_keywords.html#task
⌬ Дмитрий ⌬
Приветствую всех! И С Наступающим видно сказывается уже и конец дня и года, сижу и немного туплю: как можно через переменные в роли добавить в конфиг openvpn клиента - значения клиентского ключа, центра сертификации и т.д. что то вида: client.ovpn: . . . . . <key> ???? </key> <crt> ???? </crt> за ранее спасибо
Alexander
ignore_unreachable в плейбуке?
Спасибо, пробую.
⌬ Дмитрий ⌬
Через шаблон?
да, при том ключи указать в переменных
Alexander
Я может быть вопрос не так понял? )
Евгений
Приветствую, подскажите пожалуйста, есть ли верный способ взять с винды количество свободного места на диске С и использовать это как условие в дальнейшем? when: free_mem > 300000000 Парсингом stdout win_shell получается ооочень криво.
⌬ Дмитрий ⌬
попробую перефразировать: как из кучи файлов, среди которых будут ключи центра сертификации, клиентских ключей - собрать все в один конфиг для клиента. Для этого в конфиге можно между тегами <key> и т.д. вставить содержимое соответствующих файлов
⌬ Дмитрий ⌬
скорее оно, попробую. Спасибо
Евгений
https://docs.ansible.com/ansible/latest/modules/win_disk_facts_module.html#win-disk-facts-module size_remaining не то?
Спасибо, получилось. ansible_facts.disks[0].partitions[0].volumes[0].size_remaining Видимо цикл по дискам нужно сделать, чтоб найти верный drive_letter == C
Alexander
Вот я делаю register - а он мне dict в переменную. а можно мне сразу из этого словаря назначить что-то? То есть сейчас register: vpcs_gathered_facts и дальше vpcs_gathered_facts.vpcs[0].id, а я хочу только этот id получить, мне весь словарь не нужен.
Oleg
а ансибл может же заменить 1 слово в строке, а не полностью строку с этим словом???
Artur
что значит "заменить" ? ты про sed?
Artur
точнее модуль replace
Alexander
http://jinja.pocoo.org/docs/dev/templates/#max Не получается воспользоваться attribute. В чём ошибка? - name: debug debug: var: "{{ [ { 'val': 1, 't': 5 } , { 'val': 2, 't': 1 } , { 'val': 3, 't': 3 } ] |max(attribute=t) }}" Кавычки по разному пробовал. Ошибка: fatal: [localhost]: FAILED! => {"msg": "Unexpected templating type error occurred on ({{ [ { \"val\": 1, \"t\": 5 } , { \"val\": 2, \"t\": 1 } , { \"val\": 3, \"t\": 3 } ] |max(attribute=t) }}): max() got an unexpected keyword argument 'attribute'"}
Timur
Вместо var поставьте msg
Alexander
Alex
так всетаки max или map?
Timur
map надо
Timur
Вот так работает? - name: debug debug: msg: "{{ [ { 'val': 1, 't': 5 } , { 'val': 2, 't': 1 } , { 'val': 3, 't': 3 } ] | map(attribute='t') | max }}"
George
https://github.com/itJunky/my_own_vpnserver/blob/master/roles/openvpn/tasks/main.yaml Вот как я делал ВПН последние раза 4-ре и проблем не было подобных ниразу.
George
я хз, что у вас за проблема, но даю 10 из 10 за ник 😃
George
пиздец там, а не роль... одни shell ы
George
Я принес ещё башсибла
simplemice.eth
вам этого ахтунга в девопс чатике мало?
George
Да
George
Родина должна знать своих героев
Womchik
точно должна?
George
Несомненно
Womchik
а эти башсиблисты точно герои?
Alexander
так всетаки max или map?
Я там на max доку ссылку кинул. Там с аттрибутом работать должно.
Alexander
map надо
Нет, не надо. В доках написано, что есть параметр attribute для max, я его там указываю. map другое делает, мне целиком элемент листа нужен, а map выдирает attribute
Alexander
Вот так работает? - name: debug debug: msg: "{{ [ { 'val': 1, 't': 5 } , { 'val': 2, 't': 1 } , { 'val': 3, 't': 3 } ] | map(attribute='t') | max }}"
Это не отработает, по другой причине. Но если исправить так, чтобы работало, получится не то, что нужно )
Alexander
В каких доках?
https://t.me/pro_ansible/69463
Alexander
Я уже отказался от идеи oneliner'а и пробую по-другому. Всё равно никак: $ cat ttt.yml --- - hosts: localhost vars: foo: - { "val": 1, t: 3 } - { "val": 2, t: 2 } - { "val": 3, t: 1 } tasks: - set_fact: t_max: "{{ foo | map(attribute='t') | list | max }}" cacheable: true - set_fact: val_with_t_max: "{{ foo | selectattr('t', 'equalto', t_max) | list }}" - set_fact: val_with_t_3: "{{ foo | selectattr('t', 'equalto', 3) | list }}" $ ansible-playbook -v -i hosts ttt.yml PLAY [localhost] **************************** TASK [set_fact] ***************************** ok: [localhost] => {"ansible_facts": {"t_max": "3"}, "changed": false} TASK [set_fact] ***************************** ok: [localhost] => {"ansible_facts": {"val_with_t_max": []}, "changed": false} TASK [set_fact] ***************************** ok: [localhost] => {"ansible_facts": {"val_with_t_3": [{"t": 3, "val": 1}]}, "changed": false} PLAY RECAP ********************************** localhost : ok=3 changed=0 unreachable=0 failed=0
Timur
А какой результат вы ожидаете?
Timur
Хотите получить элемент списка с максимальным значением t?
Alexander
Да val_with_t_max должно быть такое же, как val_with_t_3. Последнее - демонстрация того, что selectattr корректно ищет, если ему дать значение, но спотыкается о переменную. Судя по всему - просто не умеет.
Alexander
Цель - фильтровать элементы списка на основании значений их аттрибутов. Если фильтровать по хардкоду - получается, хочется ещё аггрегатного фильтрования.
Timur
Сейчас, момент
Sergey
Чел умеет в баш и явно что-то слышал про Ansible.
Anonymous
Чел умеет в баш и явно что-то слышал про Ansible.
Есть у кого-то хорошая дока по автоматизации в баше? (Не просто синтаксис с ифами и вайлами)
Sergey
а эти башсиблисты точно герои?
Башсиблист третьего разряда
Sergey
Премия башсибл года
Evgenii
господа, подскажите почему не работает ? --- - hosts: 127.0.0.1 connection: local tasks: - name: test debug: var: qwe vars: qwe: "{{ lookup('dig', ya.ru) }}"
Evgenii
$ ansible-playbook -i inventory/dev.yml lock.yml ok: [localhost] => { "qwe": "VARIABLE IS NOT DEFINED!" } : ok=1 changed=0 unreachable=0 failed=0
simplemice.eth
осильте пастербин
Asten
окей
var на msg замени
simplemice.eth
опередили
Evgenii
- name: test debug: msg: "{{ lookup('dig', ya.ru) }}"
Evgenii
TASK [test] ******************************************************************************************************************************************************************************************************************************************************************** fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'ya' is undefined\n\nThe error appears to have been in '/home/emedvedev/repo/devbooks/lock.yml': line 5, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: test\n ^ here\n"}