Stan
Есть 3 хоста, по такому конфигу ставится ток на 0-й, а именно первый, на другие 2 не ставится
Stan
{{hostvars[groups.servers.slice(0:1)].inventory_hostname}} ?
Sergey
{{hostvars[groups.servers.slice(0:1)].inventory_hostname}} ?
Скорее {{hostvars[groups['servers'][0:1]].inventory_hostname}} Но не сработает, ибо ты получишь после всех квадратных скобок список, а потом зачем-то попытаешься вызвать метод "inventory_hostname" списка, а там такого метода, конечно, нет. O_o
Stan
И как
Dmitriy
Доброго дня Есть плейбук, есть группа хостов, на некоторых он отрабатывает без проблем, на некоторых выдает Platform linux on host is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. зашел, проверил, указал в хостах питоновский интерпритатор- не помогло(2.4.3) сверил установленные либы- одинаковые. проверил which python, одинаковый. Что я делаю не так ?
Dmitriy
собственно ошибка на моменте gathering facts так что сам плейбук думаю не нужен
Anonymous
Копирую файл с помощью модуля get_url Он по пути создаст нужные папки?
Dmitriy
А ты пойди по ссылке и прочитай, чего сделать нужно.
Прописать питон в хост файле, делал
Dmitriy
Это же WARNING?
Нет, в том то и дело.
Sergey
Прописать питон в хост файле, делал
Написано же английским по белому: auto_legacy_silent Ну и эт, 2.4.3 - это прям неподдерживаемый баян, wtf?
Dmitriy
Написано же английским по белому: auto_legacy_silent Ну и эт, 2.4.3 - это прям неподдерживаемый баян, wtf?
Как и рхел 5 :) а работать надо с тем что есть, попробую, спасибо. Отпишусь
Dmitriy
Написано же английским по белому: auto_legacy_silent Ну и эт, 2.4.3 - это прям неподдерживаемый баян, wtf?
я же правильно понял, что, например, в hosts нужно к проблемному хосту дописать ansible_python_interpreter=auto_legacy_silent ?
Dmitriy
ну в hosts файл ansible, а не системы)
Denis
Всем привет Подскажите либо я дурак, либо лыжи не едут Задача добавить список доменных юзеров на Windows тачку domain_access_user: [DOMAIN\user1, DOMAIN\user2,] - name: Initial Setup | Adding Users win_user: name: '{{ item }}' state: present groups: - "{{domain_user_local_group}}" loop: "{{ domain_access_user }}" Падает с ошибками (item=DOMAIN\user1) => {"ansible_loop_var": "item", "changed": false, "item": "DOMAIN\\user1", "msg": "Exception calling \"SetInfo\" with \"0\" argument(s): \"The specified username is invalid.\r\n\""}
Denis
Я так понимаю вся проблема что вместо одного '\' подставляется два обратных слеша \\
Denis
И винде это не нравится
Denis
win_domain_user - насколько я понял это чисто управлять пользоватлеями в домене, то есть кидать в группы, давать права и тд
Denis
а мне нужно управлять пользоватлем на тачке, и добавить домеенного юезра
Dmitriy
а мне нужно управлять пользоватлем на тачке, и добавить домеенного юезра
опять же, насколько я понимаю win_user работает с локальными УЗ, а не доменными
Denis
И то верно Но другого модуля я не нашел
Maksim
"changed": false, "msg": "Unable to enable service wildfly: Failed to execute operation: Too many levels of symbolic links\n" Как блин с этой хренью бороться?
Maksim
это линуксовая часть, а не ansible. Вот на лоре статья https://www.linux.org.ru/forum/admin/13188671
Самое интересное, что при первом прогоне падает, при перезапуске все ок.
Dmitriy
Самое интересное, что при первом прогоне падает, при перезапуске все ок.
тут только ковырять и разбирать сам хост, что где создается, что где есть. Вроде в этой статье описано хорошо. Опять же, для начала надо смотреть плейбук и понимать что он там делает, после уже систему смотреть. Чудес не бывает :)
Sergey
Как и рхел 5 :) а работать надо с тем что есть, попробую, спасибо. Отпишусь
Не надо вот этого вот. Я лично собирал Питон 2.7.13, что ли, для 5-ки (была такая необходимость) - всё работало.
Dmitriy
Не надо вот этого вот. Я лично собирал Питон 2.7.13, что ли, для 5-ки (была такая необходимость) - всё работало.
в том то и дело, что в данной ситуации я ставлю второстепенное по, замена питона на старом боевом коне кажется опасной затеей...особенно в пятницу. Что странно, некоторые хосты с рхел5 и тем же питоном работают без проблем.
Dmitriy
Менять - ни в коем случае, сломаешь как минимум yum. Но здесь оффтопик 😉
Согласен, да и было бы на всех хостах- имел бы смысл рисковать, а тут, скорее всего, в чем то другом. я же правильно понял, что ansible предлагает мне указать ansible_python_interpreter=auto_legacy_silent ? и сделать это можно в хост файле для проблемного хоста ?
Dmitriy
Скорее, это глобальный выбор.
тогда странно, почему при одинаковой ОС, одной версии питона что то отрабатывает норм, а что то отрабатывает вот так вот. Хотя, думаю, что то я проглядел. Но спасибо за помощь в любом случае, пойду дальше ковырять
Dmitriy
Очевидно же - что-то на хостах отличается.
да это понятно, вот только что же там такое может кроме версии самого питона и библиотек, имеющее к этому отношение. Если я раскопаю, то обязательно сообщу решение, хотя думаю оно врят ли кому то поможет. Юзайте свежее ПО :)
Vadik
Всем привет Кто может подсказать как перекинуть с удаленного хоста файл на удаленный хост, ssh-key есть Какой модуль в ansible этим занимается
Div
copy
Div
synchronize
Vadik
Спасибо Но модуль copy неработает так как нужно У меня есть две машины на одной есть файл размером 100мб его нужно кинуть на другую машину как это сделать с помощью ansible
Div
скачать на контрол хост и отправить на вторую машину
Div
или башить rsync через command
Div
я для себя выбрал первое
Юрий
а что не так с synchronize, если это незабашеный, но rsync?
Div
это скорее ограничение самого ансибля.
Div
коллеги, кто и как сумел gitlab-runner в докере зарегистрировать?
Maksim
Слушайте, а service + port Разве не работают вместе?
Maksim
firewalld: zone: public port: 5432/tcp permanent: yes state: enabled service: postgresql
Div
firewalld сам по себе разрешает или сервис или порт
Denis
Timur
loop: "{{ domain_access_user }}"
Отделение Bereke Bank
Timur
Эмм а почему
Потому что в них обратный слеш - спецсимвол
Timur
Для винды это особенно критично
Отделение Bereke Bank
понял)
Отделение Bereke Bank
вопрос наверное из серии программирования на ансибле. но мало ли возможно ли определить является ли значение переменной IP-адресом или обычным текстом? Нужно для генерации серта. От этого зависит сядет оно в IP: или DNS:
Ждун
больше к питону, там вроде есть что-то типа | ipaddr
Alexey
больше к питону, там вроде есть что-то типа | ipaddr
Да, вот такое: {{ '192.0.2.0' | ipaddr }}
Юрий
все что в {{}} - это jinja2, многое можно почерпнуть из доки по этой библиотеке
Maksim
Пропущен systemctl daemon-reload? Что было?
нет, daemon-reload был. Как временное решение, поместил usr/lib/systemd
Maksim
вроде работает
Maksim
Куда переместил?
из etc systemd в /usr/lib/systemd, и после него поставил daemon-reload
#Rλatan
как реализовать фильтрами и циклом loop эту конструкцию? elif patterns and excludes: for p in patterns: r = re.compile(p) if r.match(f): for e in excludes: r = re.compile(e) if r.match(f): return False return True
#Rλatan
--- - hosts: localhost connection: local gather_facts: False vars: paths: - "/home/vagrant/.ansible" - path-one - path-two - path-three - "/home/vagrant/.ssh" - "/home/vagratn/" patterns: - ".*ssh.*" - ".*ansible.*" - ".*one.*" tasks: - name: set empty list set_fact: files_to_be_removed: [ ] - set_fact: files_to_be_removed: | {{ paths |reject("search", item) |list }} with_items: - "{{ patterns }}" не получается получить вот такой список ok: [localhost] => { "msg": [ "path-two", "path-three", "/home/vagratn/" ] }
Aleksandr
Привет, подскажите куда двигаться: есть в ansible playbook много подобных тасков - name: Create S3 keys command: docker exec -it {{ item }} bash -c 'yes | bin/elasticsearch-keystore create'" loop: - "elasticsearch-master" - "elasticsearch-data" проблема в том, что на серверах не везде есть контейнер elasticsearch-data как обойти проблему? хотябы в общих чертах пробовал из модуля docker_container_info вытаскивать result.exists и писать when: result.exists но тогда просто пропусаются эти сервера ansible недавно начал изучать
Dr. L.S.Dee
Создать/доставить контейнер на целевые сервера, не?
Владислав
как реализовать фильтрами и циклом loop эту конструкцию? elif patterns and excludes: for p in patterns: r = re.compile(p) if r.match(f): for e in excludes: r = re.compile(e) if r.match(f): return False return True
Делаешь jinja template в vars вида: mathced_items: | ... После чего подгружаешь файл через include_vars Либо пиши модуль на python, но больше похоже на то что ты взял не тот инструмент