Alex
> Можно ли сделать отдельную таску в которой идет SELECT к базке WHERE ... IN (все хосты)?
а что inventory файл уже не в моде?
Anonymous
коллеги подскажите как правильно написать условия. when, чтобы таск выполнялся только если хост состоит в группе хостов ? попробовал так when: "{{ansible_fqdn}} in cron_allow_backup", но свалилась с ошибкой
Sergey
Anonymous
мне нужно через when так как мне нужно чтобы один из тасков делался только на одной из нод кластера а не на всех
Sergey
Anonymous
без фигурных скоробок, хм, сейчас попробую
Alex
Дмитрий
Доброго дня. Начинаю постигать ansible. Подскажите возможно ли такое:
есть хост-kvm на котором запущены VM, которые находятся в своей сети не доступной за пределами хоста-kvm.
как правильно написать в плейбуке так чтобы в качестве hosts для ansible был хост-kvm а сами задачи выполнялись на VM?
Anonymous
xерез бастион хост
Anonymous
https://selivan.github.io/2018/01/29/ansible-ssh-bastion-host.html типа такого, но гуглить по словам ansbile ssh bastion host
Anonymous
что то не Сергея вариант не Алекса не работает, мб правда из-за тире в имене серверов
Отделение Bereke Bank
Alex
Anonymous
заменил хостнейм на fqdn и жизнь наладилась, спасибо
Alex
$ cat test.yml
- name: Test
shell: echo "HOSTNAME={{ ansible_hostname }}"
when: ansible_hostname in groups['master']
$ ansible-playbook -v local.yml
TASK [Test] ***
changed: [itests-3d5d-master] => changed=true
cmd: echo "HOSTNAME=itests-3d5d-master"
delta: '0:00:00.003117'
end: '2020-04-14 13:05:11.032801'
rc: 0
start: '2020-04-14 13:05:11.029684'
stderr: ''
stderr_lines: <omitted>
stdout: HOSTNAME=itests-3d5d-master
stdout_lines: <omitted>
Anonymous
у вас хостнейм однолейбовое потому особо нет разницы, а если полное было бы то думаю была
Alex
> однолейбовое
а по русски?
Отделение Bereke Bank
Однометочное
Anonymous
однолейбовое это когда сервер имеет имя. server1, а если он имеет server1.example.com то уже fqdn
Дмитрий
Anonymous
в линукси у многих краткие имена серверов без домена
Отделение Bereke Bank
Anonymous
ну кстати в оф доке https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html что то особо нюанс в примерах не видать между hostname & fqdn & ansible_nodename
Serg
Serg
ну или пользуйтесь не девел, а <2.10
Sergey
+++ ^^^
Николай
Коллеги, подскажите пожалуйста, как (и возможно ли) прочитать плейбук (или, например, requirements.yml) в переменную (список)? Модуль include_vars закономерно хочет yaml-хэш, а плейбук — суть массив (список)
#странное
Kirill
Всем привет, при обновлении с 2.8.6 на 2.9.6 вижу новые деприкейты:
[DEPRECATION WARNING]: set_available_variables is being deprecated. Use "@available_variables.setter" instead.. This feature will be removed in version 2.13. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
Судя по всему ругается на вот такие конструкции:
register: until_register
retries: "{{ zabbix_tasks_retries }}"
delay: "{{ zabbix_tasks_delay }}"
until: until_register is success
Погуглил эту и нашел ровно 2(две) ссылки и ничего в офф докак и в porting guide.
Что это и как чинить?
Alex
у меня работает без проблем
Alex
- name: Download XRAY bundle v.{{ jfxr_curr_version }}
become: yes
ignore_errors: yes
get_url:
url: "{{ jfxr_bundle_url }}"
dest: "{{ jfxr_installer_dir }}/{{ jfxr_installer_type }}"
url_username: "{{ jfinsttest_username }}"
url_password: "{{ jfinsttest_password }}"
mode: 0755
validate_certs: "{{ get_url_validate_certs }}"
timeout: 300
register: download_jfxr_bundle_result
until: download_jfxr_bundle_result is succeeded
retries: 3
delay: 20
нет никаких преупреждений
inqfen
Николай
Вообще можно, но зачем?
сравнить список ролей в некотором плебуке и requirements.yml, представив их как массивы
Kirill
inqfen
Типа валидатор что ли?
Kirill
Но меня смущает что нет никакой офф документации
Николай
Типа валидатор что ли?
Близкая задача. Извлечь из requirements.yml те роли, которых нет в некотором плебуке (сделать из этого списка новый плейбук и выполнить)
Alex
но можешь проверить
Kirill
да проверю но больше идей нет
inqfen
Вообще можно через лукап, но в ансибле не совсем ямл
inqfen
А ямл в джиндже
inqfen
Именно так
inqfen
Но такая кодогенерация как у тебя - как по мне упоротость какая-то
inqfen
Тем более ансиблом генерить ансибл
Николай
Это надстройка над некоторым легаси, который трогать нельзя. Да, выглядит странненько.
inqfen
Если вот прямо надо - напиши кодогенерацию на том же питоне сбоку отдельно
inqfen
И не мучай ансибл
Николай
|from_yaml|to_json, вроде, даёт что-то парсябельное)
inqfen
Алексей
коллеги а кто-то через ансибл проверял наличие образа? ну т.е у меня задача: на хосте отсутствует docker image и есть таска которая переименовывает latest в old, вот она фелится по причине того что latest отсутствует, я решил это вот так
- name: Get infos on container
docker_image_info:
name: registry.gitlab.com/vectorx_team/vectorx_mediaplanning/validation:latest
register: result_image
- debug: msg="{{ result_image.images | length == 1 }}»
Terry
https://youtu.be/vwW1A9PMb98
Vitaliy
Подскажите а как правильно обращаться с ssh ключем? (Просто хранить его локально и не пушить в ремозиторий или можно как то хранить все вместе, но шифровано) речь о приватном ключе
Vitaly
Приватный даже в зашифрованном виде я бы ни в какой репо не клал
Denis
Ребята доброй ночи. Подскажите плиз у меня в файле записана перемена в виде {{test}} как ее вывести в дебак . суть прочиать файл понять какая перемена и вывести ее значение
Denis
т.е в нутри файла
profile: {{test}}
делаю греп по профилю но теперь как вывести из vars значение test?
Denis
help
Sergey
Ребята доброй ночи. Подскажите плиз у меня в файле записана перемена в виде {{test}} как ее вывести в дебак . суть прочиать файл понять какая перемена и вывести ее значение
Ты, конечно, извини, но на каком языке ты пишешь? Я ни один из трёх знакомых (ru, en, de) не узнаю. С большой вероятностью тебе могут не отвечать не потому, что никто не читает, а потому, что ничего не понятно, а гадать никому не интересно. Если ты хочешь, чтобы тебя понимали носители русского языка - обрати внимание на красные волнистые линии в поле ввода текста. В телеге, предполагаю, на всех платформах работает спеллчекер, так он - твой первый друг. Уважай, пожалуйста, время тех, кто мог бы помочь, и изъясняйся на стандартном русском.
В общем, из твоего описания непонятна суть первоначальной задачи, а гадать - не-а.
Denis
Ты, конечно, извини, но на каком языке ты пишешь? Я ни один из трёх знакомых (ru, en, de) не узнаю. С большой вероятностью тебе могут не отвечать не потому, что никто не читает, а потому, что ничего не понятно, а гадать никому не интересно. Если ты хочешь, чтобы тебя понимали носители русского языка - обрати внимание на красные волнистые линии в поле ввода текста. В телеге, предполагаю, на всех платформах работает спеллчекер, так он - твой первый друг. Уважай, пожалуйста, время тех, кто мог бы помочь, и изъясняйся на стандартном русском.
В общем, из твоего описания непонятна суть первоначальной задачи, а гадать - не-а.
1. Есть файл
….
Profile: {{ test}}
….
2. Где то в хоте работы был выполнен
Set_fact :
test: “temp_test”
3. В ходе работы мне нужна узнать какая из перемен записана в файл
Shell “grep ‘profile’”
На выходи получил {{ test }}
Как теперь вывести значение {{ test }}?
Denis
надеюсь сейчас лучше ?!
Dok
Denis
есть переменная tmp.stdout в ней записано {{ temp }} как мне получить значение переменной {{ temp }}
Dok
- какая_то_таска
register: temp
- debug:
msg: {{temp}}
Denis
я зачитал получил строчку где tmp.stdout
- debug:
var: tmp.stdout
(out будет {{ temp }})
вот как сделать так чтобы out был значение переменой {{ temp }}
Denis
которая равно 100
Denis
Теперь понимаете меня?
Dok
Твоё описание не отвечает на три главных вопроса:
- Что?
- Почему?
- Зачем?
Denis
Твоё описание не отвечает на три главных вопроса:
- Что?
- Почему?
- Зачем?
- set_fact:
profile: "test_name"
- set_fact:
profile_2: "test_name2"
shell: "grep 'profileFile' file.yml"
register: tmp
- debug:
var: tmp.stdout
>>> tmp.stdout == "{{profile_2}}"
как сделать так чтобы
>>> tmp.stdout == "test_name2"
Denis
очень нужна помощь
Denis
@Dok2d >>> tmp.stdout == "{{profile_2}}" вот это у меня сейчас есть а вот как сделать так чтобы {{ profile_2 }} конвертнул в свое значение которая равна test_name2?
Dok
Denis
она в другой роле считай что у меня только файл есть
Denis
но profile_2 его значение прописано в default.yml
Dok
Если это генерация из j2, то ты в нём, наверняка, написал test_name2, вместо {{test_name2}}