Lamobot
Stan
Есть 3 хоста, по такому конфигу ставится ток на 0-й, а именно первый, на другие 2 не ставится
Sergey
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
Он по пути создаст нужные папки?
Sergey
Sebor▂▅▇█▓▒░
Udjin
Sergey
Udjin
Dmitriy
Dmitriy
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
И винде это не нравится
Dmitriy
Denis
win_domain_user - насколько я понял это чисто управлять пользоватлеями в домене, то есть кидать в группы, давать права и тд
Denis
а мне нужно управлять пользоватлем на тачке, и добавить домеенного юезра
Denis
И то верно
Но другого модуля я не нашел
Maksim
"changed": false, "msg": "Unable to enable service wildfly: Failed to execute operation: Too many levels of symbolic links\n"
Как блин с этой хренью бороться?
Dmitriy
Maksim
Sergey
Sergey
Dmitriy
Скорее, это глобальный выбор.
тогда странно, почему при одинаковой ОС, одной версии питона что то отрабатывает норм, а что то отрабатывает вот так вот. Хотя, думаю, что то я проглядел. Но спасибо за помощь в любом случае, пойду дальше ковырять
Sergey
Dmitriy
Очевидно же - что-то на хостах отличается.
да это понятно, вот только что же там такое может кроме версии самого питона и библиотек, имеющее к этому отношение. Если я раскопаю, то обязательно сообщу решение, хотя думаю оно врят ли кому то поможет. Юзайте свежее ПО :)
Sergey
Vadik
Всем привет
Кто может подсказать как перекинуть с удаленного хоста файл на удаленный хост, ssh-key есть
Какой модуль в ansible этим занимается
Div
copy
Div
synchronize
Vadik
Спасибо
Но модуль copy неработает так как нужно
У меня есть две машины на одной есть файл размером 100мб его нужно кинуть на другую машину как это сделать с помощью ansible
Div
скачать на контрол хост и отправить на вторую машину
Div
или башить rsync через command
Div
я для себя выбрал первое
Юрий
а что не так с synchronize, если это незабашеный, но rsync?
Div
это скорее ограничение самого ансибля.
Div
коллеги, кто и как сумел gitlab-runner в докере зарегистрировать?
Sergey
Maksim
Слушайте, а service + port Разве не работают вместе?
Maksim
firewalld:
zone: public
port: 5432/tcp
permanent: yes
state: enabled
service: postgresql
Div
firewalld сам по себе разрешает или сервис или порт
Timur
Denis
Timur
loop: "{{ domain_access_user }}"
Отделение Bereke Bank
Timur
Эмм а почему
Потому что в них обратный слеш - спецсимвол
Timur
Для винды это особенно критично
Отделение Bereke Bank
понял)
Отделение Bereke Bank
вопрос наверное из серии программирования на ансибле. но мало ли
возможно ли определить является ли значение переменной IP-адресом или обычным текстом? Нужно для генерации серта. От этого зависит сядет оно в IP: или DNS:
Ждун
больше к питону, там вроде есть что-то типа | ipaddr
Artem
Sebor▂▅▇█▓▒░
Alexey
Alexey
Юрий
все что в {{}} - это jinja2, многое можно почерпнуть из доки по этой библиотеке
Denis 災 nobody
Maksim
вроде работает
Denis 災 nobody
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
Создать/доставить контейнер на целевые сервера, не?
Aleksandr
Владислав