Elenhil
Как это связано с group_vars?
Групварз сосется из playbook_dir/group_vars, не?
Sergey
Групварз сосется из playbook_dir/group_vars, не?
https://docs.ansible.com/ansible/2.9/user_guide/playbooks_best_practices.html#alternative-directory-layout
Elenhil
Не.
You can also add group_vars/ and host_vars/ directories to your playbook directory
Elenhil
https://docs.ansible.com/ansible/2.9/user_guide/playbooks_best_practices.html#alternative-directory-layout
Не прокатит, у нас групварсы одинаковые для всех энвайронментов
Elenhil
Боль, хотелось бы без симлинков
Elenhil
Ладно, второй вопрос. Можно ли в инвентори хосту указать группы, а не для группы список хостов?
Elenhil
Что в ини что в ямле вижу только groupname:[host1,host2]
Elenhil
Можно ли host:[group1, group2]?
Aleksey
а чо в этой группе уже можно обсуждать 2.10 или ещё нет ?
Sergey
а чо в этой группе уже можно обсуждать 2.10 или ещё нет ?
Так поминки справили же по 2.9 - конечно, можно. И нужно.
Elenhil
Зачем? Указываешь этот хостнейм в другой группе.
Вот это подбешивает чутка, когда 100500 раз один и тот же хост
Elenhil
yaml якори ?
еще менее четабильно :D
Lamobot
Динамические инвентари тоже никто не отменял
Anonymous
как в инвентори файле указать другой порт для подключения по ssh? просто через двоеточие?
Radik
всем привет коллеги, направьте, пожалуйста как лучше копировать директорию с одного удалённого хоста на другой?
Radik
А много копировать? И что за файлы?
директорию целиком, со всем содержимым. файлов много тащить это в ансибл не хочется
Radik
вопрос снят
Игорь
Привет. Есть два плейбука. Один принимает параметры и создает ноды в EC2, ELB, после чего сохраняет id нод в YAML. Для наглядности я пишу ямл не через to_yaml, а в copy простым шаблоном с циклом. Второй считывает те же параметры и id нод, после чего удаляет ноды и балансер. Есть ли лучший подход для передачи между запусками сохраненного состояния? Что можно поменять?
Игорь
Terraform или другой IaC
это понятно, меня интересуют решения на ансибле :)
tutunak
это понятно, меня интересуют решения на ансибле :)
Вероятность нарваться на проблемы больше при изобретении своего костыля.
Игорь
Терраформ я люблю, но в данной задаче требуется использовать именно Ansible.
Denis 災 nobody
тут нужно использовать функционал стэков, а это к cfn/tf
Игорь
у меня доступно ограниченное количество инструментов и вся среда управляется именно Ансиблом. Когда будет переход к более сложной системе — перепишу на терраформ. Сейчас использование двух тулов вместо одного это оверхед.
Denis 災 nobody
если ec2 испольуется больше чем "создать и забыть" - то уже пора.
Denis 災 nobody
и если что, есть тэги в амазоне. Как костыль иногда катит
Denis 災 nobody
ансибл умеет в ec2, но про остальные сервисы у меня сомнения
Anonymous
как запускать ad-hock команды не находясь в той папке где лежит конфиг файл? ну и инвентори
Alex
ansible -i path/to/inventory
Anonymous
ansible -i path/to/inventory
а конфиг должен быть в той же папке где и инвентори?
Alex
о каком конфиге идет речь?
Lamobot
а конфиг должен быть в той же папке где и инвентори?
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file
Aleksey
Добрый день! подскажите если в ansible.cfg установлен признак become=true при запуски плейбука можно этот признак изменить на false по аналогии с опцией -b? или только исключить become из ansible.cfg и каждый раз или указывать -b или не указывать?
i4l
то ли я что-то путаю, был ли какой-то метод именно определить семейство используемых пакетов? rpm/deb/вотетовсё?
Aleksey
сек похоже на то что должно сработать
i4l
тот же принцип
Aleksey
Оно самое
Aleksey
Спасибо!
Aleksey
зациклился был на become а в extra-vars менять было надо ansible_become
Дмитрий
Всем привет, Запускаю ansible под локальным Ubuntu в Windows 10. При подключении к любому серверу получаю ошибки вида: ansible all -m ping srv-dbastudy-ora01 | UNREACHABLE! => { "changed": false, "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo /tmp/ansible-tmp-1603452099.14636-141072301600926 `\" && echo ansible-tmp-1603452099.14636-141072301600926=\"` echo /tmp/ansible-tmp-1603452099.14636-141072301600926 `\" ), exited with result 1", "unreachable": true } Файл hosts: [all_oracle] srv-dbastudy-ora01 Файл ansible.cfg # ansible.cfg [defaults] inventory = ./hosts remote_user = dlukyanov По ssh на сервер при этом спокойно захожу. SSH-ключ загрузил туда (ничего не поменяло, до этого была та же ошибка).
Дмитрий
При этом то же с линуксовой машины (SLES) работает... Куда можно посмотреть? Пока идеи закончились... 🤔
Lamobot
А просто ping srv-dbastudy-ora01 работает?
Дмитрий
А просто ping srv-dbastudy-ora01 работает?
Да. Я могу зайти на тачку без проблем по ssh.
Grek 🇺🇦
у тебя случаем не игнорируется конфиг?
Дмитрий
у тебя случаем не игнорируется конфиг?
Да, вроде, нет. Проверяю через -vvv
Дмитрий
ansible all -m ping -v Using /home/dlukyanov/ansible/ansible.cfg as config file srv-dbastudy-ora01 | UNREACHABLE! => { "changed": false, "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo /tmp/ansible-tmp-1603452380.665472-109841326837090 `\" && echo ansible-tmp-1603452380.665472-109841326837090=\"` echo /tmp/ansible-tmp-1603452380.665472-109841326837090 `\" ), exited with result 1", "unreachable": true }
Grek 🇺🇦
а у юзера на удаленной тачке какие права? и какие права на /tmp каталог?
Дмитрий
а у юзера на удаленной тачке какие права? и какие права на /tmp каталог?
Ну, сейчас выставлен темп в /tmp. У него стандартные права drwxrwxrwt На удалённой тачке обычные права. В своём хомяке может создавать файлы... Опять же, как я уже написал, то же самое с другой тачки линуксовой работает...
Дмитрий
Вот, для сравнения... ansible all -m ping -vvv <srv-dbastudy-ora01> ESTABLISH CONNECTION FOR USER: dlukyanov <srv-dbastudy-ora01> REMOTE_MODULE ping <srv-dbastudy-ora01> EXEC ssh -C -tt -v -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/dlukyanov/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 srv-dbastudy-ora01 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1603452592.47-65388524531566 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1603452592.47-65388524531566 && echo $HOME/.ansible/tmp/ansible-tmp-1603452592.47-65388524531566' <srv-dbastudy-ora01> PUT /tmp/tmpdrS2Y4 TO /home/dlukyanov/.ansible/tmp/ansible-tmp-1603452592.47-65388524531566/ping <srv-dbastudy-ora01> EXEC ssh -C -tt -v -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/dlukyanov/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 srv-dbastudy-ora01 /bin/sh -c 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/dlukyanov/.ansible/tmp/ansible-tmp-1603452592.47-65388524531566/ping; rm -rf /home/dlukyanov/.ansible/tmp/ansible-tmp-1603452592.47-65388524531566/ >/dev/null 2>&1' srv-dbastudy-ora01 | success >> { "changed": false, "ping": "pong" }
Дмитрий
А вот Ubuntu локальная из под Винды. ansible all -m ping -vvv ansible 2.9.6 config file = /home/dlukyanov/ansible/ansible.cfg configured module search path = ['/home/dlukyanov/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible executable location = /usr/bin/ansible python version = 3.8.2 (default, Jul 16 2020, 14:00:26) [GCC 9.3.0] Using /home/dlukyanov/ansible/ansible.cfg as config file host_list declined parsing /home/dlukyanov/ansible/hosts as it did not pass its verify_file() method script declined parsing /home/dlukyanov/ansible/hosts as it did not pass its verify_file() method auto declined parsing /home/dlukyanov/ansible/hosts as it did not pass its verify_file() method Parsed /home/dlukyanov/ansible/hosts inventory source with ini plugin META: ran handlers <srv-dbastudy-ora01> ESTABLISH SSH CONNECTION FOR USER: dlukyanov <srv-dbastudy-ora01> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="dlukyanov"' -o ConnectTimeout=10 -o ControlPath=/home/dlukyanov/.ansible/cp/867fe300c3 srv-dbastudy-ora01 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /tmp/ansible-tmp-1603452657.9310288-215449738235542 `" && echo ansible-tmp-1603452657.9310288-215449738235542="` echo /tmp/ansible-tmp-1603452657.9310288-215449738235542 `" ) && sleep 0'"'"'' <srv-dbastudy-ora01> (1, b'', b'eash: write(0): Bad file descriptor (9)\n') <srv-dbastudy-ora01> Failed to connect to the host via ssh: eash: write(0): Bad file descriptor (9) srv-dbastudy-ora01 | UNREACHABLE! => { "changed": false, "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo /tmp/ansible-tmp-1603452657.9310288-215449738235542 `\" && echo ansible-tmp-1603452657.9310288-215449738235542=\"` echo /tmp/ansible-tmp-1603452657.9310288-215449738235542 `\" ), exited with result 1", "unreachable": true }
Дмитрий
noexec может на /tmp?
Не понял вопроса...
Tamerlan
короче кури вот эту ошибку: 1, b'', b'eash: write(0): Bad file descriptor (9)\n') <srv-dbastudy-ora01> Failed to connect to the host via ssh: eash: write(0): Bad file descriptor (9)
Tamerlan
noexec может на /tmp?
это наверное не туда
Игорь
Dynamic inventory для Амазона
на https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html пропал раздел об AWS
Игорь
видимо, убрали
Tamerlan
Это курю уже пол дня...
попробуй руками папку /tmp создать на тачке
Дмитрий
попробуй руками папку /tmp создать на тачке
Она создаётся руками. Пробовал..
Tamerlan
Она создаётся руками. Пробовал..
из под того же юзера под которым ансибль рабоет?
Дмитрий
Тут явно проблема с конфигом на убунте. Потому, что с другого хоста всё работает..
Дмитрий
Но куда копать не могу понять...
Игорь
Но куда копать не могу понять...
какой шелл запускается при заходе вручную?
Дмитрий
какой шелл запускается при заходе вручную?
ssh dlukyanov@srv-dbastudy-ora01 Last login: Fri Oct 23 14:48:08 2020 from 10.0.28.77 [i] trying 10.0.49.4:5554 ... connected. Awaiting EAS central server validation ... granted. dlukyanov@srv-dbastudy-ora01:~> echo $SHELL /bin/bash