Александр
Timur
Это не про модуль уже
Александр
смотря какой модуль... (:
Timur
Ну, тут вон assemble у некоторых непреодолимые сложности вызывает...
Ivan
Alexander
Например, если версия типа 0.4.7
В общем, я действительно вышел из положения тем, что номер версии оставил как есть, а вот зависящие от нее переменные уже нагенерил с помощью replace.
Alexander
Timur
Tadeusz
уважение.
Timur
Timur
Только дублирование кода - это плохо.
Timur
Я же не зря про дополнительную переменную сказал
Alexander
Alexander
Еще вопрос. Плейбук запускается на паре сотен компьютеров и некоторые из них недоступны. После выполнения в AWX он пишет статус таска как failed, хотя успешно было обработано >80% машин. Думал это с помощью max_fail_percentage исправить, но наверное это не то.
Alexander
Alexander
Вот такой же вопрос в Issue на гитхабе:
https://github.com/ansible/awx/issues/527
Vadim
Vadim
https://docs.ansible.com/ansible/latest/reference_appendices/playbooks_keywords.html#task
⌬ Дмитрий ⌬
Приветствую всех! И С Наступающим
видно сказывается уже и конец дня и года, сижу и немного туплю:
как можно через переменные в роли добавить в конфиг openvpn клиента - значения клиентского ключа, центра сертификации и т.д.
что то вида:
client.ovpn:
. . . . .
<key>
????
</key>
<crt>
????
</crt>
за ранее спасибо
Alexander
Alexander
Alexander
Alexander
Я может быть вопрос не так понял? )
Евгений
Приветствую, подскажите пожалуйста, есть ли верный способ взять с винды количество свободного места на диске С и использовать это как условие в дальнейшем?
when: free_mem > 300000000
Парсингом stdout win_shell получается ооочень криво.
⌬ Дмитрий ⌬
попробую перефразировать: как из кучи файлов, среди которых будут ключи центра сертификации, клиентских ключей - собрать все в один конфиг для клиента. Для этого в конфиге можно между тегами <key> и т.д. вставить содержимое соответствующих файлов
Alexander
⌬ Дмитрий ⌬
скорее оно, попробую. Спасибо
Alexander
Евгений
Alexander
Вот я делаю register - а он мне dict в переменную.
а можно мне сразу из этого словаря назначить что-то?
То есть сейчас register: vpcs_gathered_facts и дальше vpcs_gathered_facts.vpcs[0].id, а я хочу только этот id получить, мне весь словарь не нужен.
Oleg
а ансибл может же заменить 1 слово в строке, а не полностью строку с этим словом???
Artur
что значит "заменить" ? ты про sed?
Artur
точнее модуль replace
Alexander
Oleg
Oleg
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
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
map надо
Нет, не надо. В доках написано, что есть параметр attribute для max, я его там указываю. map другое делает, мне целиком элемент листа нужен, а map выдирает attribute
Timur
Alexander
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
Sergey
Чел умеет в баш и явно что-то слышал про 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
осильте пастербин
Diana
Evgenii
Asten
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"}