Sander
ssh_args = -o ForwardAgent=yes -o ControlPersist=30s -o ServerAliveInterval=900 -o ServerAliveCountMax=10
Sander
я ansible делал 3 года назад, все помню - как плейбки готовить, но вот с некоторыми вещами я застреваю
Sander
главное есть старый проект как пример ... и что-то я не могу.
Кирилл
вообщем методология такая ) надо зайти руками на целевой хост, запустить в терминале tail -f /var/log/auth.log проиграть плейбук, и смотреть в вывод консоли на удаленном хосте будет видно, под каким пользователем плейбук пытается зайти на сервер и почему не пускает
Кирилл
/var/log/auth.log - путь к логам ssh в ubuntu дистре, какой у вас, не понятно
Sander
- есть root, alex, docker пользователи - конекчусь через alex - все пользователи под паролями, - все имеют authorized_keys каждый пользовател в своей директории, - права на файлы authorized_keys заданы 0600 - у ssh key есть passphrase - алгоритм ключей ed25519, но ssh_config настроен что только с ним работает и коннектится через терминал отлично, но не через ansible
Sander
--- - hosts: test-master tasks: - name: "jajaja" shell: "ls -al"
Sander
vars удалил только что
Sander
test-master ansible_host_name=test-master ansible_host=120.181.47.183
Кирилл
ssh -i ~/.ssh/test/test/test alex@120.181.47.183 -p 2568
вот тут ты указываешь порт 2568
Sander
да, ансибл тоже ведь порт оказывает там есть в строчке
Кирилл
он где то описан?
Sander
-o Port=2568
Sander
[all:vars] ansible_ssh_port={{ ssh_server_port }}
Кирилл
ssh_server_port - и где он задается?
Sander
group_vars/all
Sander
если я другой порт пропишу - то там сразу с ошибкой упадет
Sander
"msg": "Failed to connect to the host via ssh: OpenSSH_7.9p1, LibreSSL 2.7.3\
Sander
так что все нормально переменные подсасывает
UglyKoyote
а откуда тогда ошибка, если все переменные норм?
UglyKoyote
может стоит копать в сторону ошибки? а не пенять на ансибл
Кирилл
понятно рекомендую тогда зайти на целевой хост и в режиме реального времени смотреть лог ssh - под каким пользователем приходит плейбук и почему ему отказывает
Sander
ansible-playbook -i inventories/production ./playbooks/setup/setup_new_server_master.yml -vvvv
Sander
а откуда тогда ошибка, если все переменные норм?
ошибка если я порт укажу не правильный, это я протсо проверил что будет если я впишу что-то неправильное
Sander
ошибки то никакой нет, я скинул то что есть
Sander
он просто делает запросы и останавливается, не начиная даже первую таску
Sander
он походу под rsa коннектится
Sander
Aug 8 17:29:05 test-master sshd[1259]: rexec line 35: Deprecated option RSAAuthentication Aug 8 17:29:05 test-master sshd[1259]: rexec line 47: Deprecated option RhostsRSAAuthentication Aug 8 17:29:05 test-master sshd[1259]: reprocess config line 35: Deprecated option RSAAuthentication Aug 8 17:29:05 test-master sshd[1259]: reprocess config line 47: Deprecated option RhostsRSAAuthentication
Sander
@zCirill
Sander
теперь бы понять - как сделать чтоб ansible использовал только ed25519
Кирилл
это ругань на тему конфига, говорит что в конфиге сервера sshd есть опции Deprecated
Кирилл
надо смотреть на попытки логина при проигрывании плейбука
Sander
ахх
Sander
черт
Sander
оно есть в конфиге у меня
Sander
но это проблему не решает (
Alex
но это проблему не решает (
Ибо Deprecated option это не ошибка
Sander
непонятно тогда мне что он не коннектит ansible-ом
Кирилл
непонятно тогда мне что он не коннектит ansible-ом
открывай лог ssh сервера, запускай плейбук и смотри в реальном времени - под каким пользователем пытается зайти плейбук и почему его не пускает
Sander
да так и делал
Sander
я скинул уже что он мне туда записвал в лог файл
Sander
var/log/auth.log - верно?
Sander
debian 10
Кирилл
вот такой путь /var/log/auth.log
Кирилл
Aug 8 20:40:36 w2 sshd[9244]: Accepted publickey for ansible from 127.0.0.1 port 49360 ssh2: RSA SHA256:SqA+ABNZ1j2I Aug 8 20:40:36 w2 sshd[9244]: pam_unix(sshd:session): session opened for user ansible by (uid=0) Aug 8 20:40:36 w2 systemd-logind[208]: New session 112876 of user ansible.
Кирилл
вот такой кусок лога о том, что пользователь успешно залогинился на сервер
Кирилл
и вот такой кусок, когда неверно Aug 8 20:45:14 w1 sshd[21097]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=127.0.0.1 Aug 8 20:45:16 w1 sshd[21097]: Failed password for invalid user ansible from 127.0.0.1 port 39776 ssh2 Aug 8 20:45:17 w1 sshd[21097]: pam_unix(sshd:auth): check pass; user unknown Aug 8 20:45:19 w1 sshd[21097]: Failed password for invalid user ansible from 127.0.0.1 port 39776 ssh2 Aug 8 20:45:19 w1 sshd[21097]: Connection closed by invalid user ansible 127.0.0.1 port 39776 [preauth]
Sander
только это: Aug 8 17:55:12 test-master sshd[1337]: Connection closed by authenticating user alex 41.53.7.239 port 43561 [preauth] Aug 8 17:55:13 test-master sshd[1340]: rexec line 35: Deprecated option RSAAuthentication Aug 8 17:55:13 test-master sshd[1340]: rexec line 47: Deprecated option RhostsRSAAuthentication Aug 8 17:55:13 test-master sshd[1340]: reprocess config line 35: Deprecated option RSAAuthentication Aug 8 17:55:13 test-master sshd[1340]: reprocess config line 47: Deprecated option RhostsRSAAuthentication
Sander
если отключаю ansible плейбук - то вот такая строчка появляется Aug 8 17:55:12 test-master sshd[1337]: Connection closed by authenticating user alex 41.53.7.239 port 43561 [preauth]
Sander
если по ssh коннекчусь нормально - то логи пишет конечно, что был приконекчен
Sander
но с плейбуком мимо как-то, вот только это что я написал
Кирилл
напиши тестовый плейбук, в котором только ping будет
Кирилл
cat ping.yml --- - name: Ping host hosts: w1 tasks: - name: Check connect to w1 ping:
Кирилл
указывая в качестве хоста нужный тебе хост и посмотри, что произойдет при отработке плейбука
Sander
да так же стоит @zCirill
Кирилл
тогда сожалею )
Кирилл
я иссяк
Sander
раньше помню была проблема что сессия не передавалась, но там есть флажок все окей, сейчас то что не так не пойму (
Sergey
@sander92 у тебя в итоге плейбук пользователем ansible соединяется?
Sander
ребята привет
Sander
@tnt4brain я уже справился ) там лишные конфиги были в all:vars, а так все было правильно у меня.
Sander
раньше проблем со старой версией не было, в новой как-то все более жестко
Sander
у меня еще один вопрос, мне надо отправить json переменной в "docker_container", но видимо json не совсем валидный, так как я делаю это таким образом: env_lalala '{ "myName": "love-job" }' может как-то можно файл считывать в credentials и запихивать как переменную в docker_container модуль.
Sander
просто не получается почему-то передать валидный json
Sander
"{{ env_config_json | string | quote }}"
Sander
docker_container: env: LALALA_CONFIGURATION: "{{ env_config_lalala | trim | quote }}"
Sander
Iwan
Sander
но есть идея сделать все через systemd
Sander
это будет намного надежней
Iwan
docker_container: env: LALALA_CONFIGURATION: "{{ env_config_lalala | trim | quote }}"
env: ZOO_SERVERS: "{{ nsi_zkp_zoo_srv }}" где nsi_zkp_zoo_srv: 'server.1=0.0.0.0:2888:3888;2181' Почему не засунуть в инвентори, что необходимо? )
Sander
слишком много переменных, приложение хочет json-чик
Sander
я наверное просто через systemd буду делать docker run
Iwan
слишком много переменных, приложение хочет json-чик
ну для таких целей и служит инвентори, чтобы нормально хранить переменные )
Sander
в инвентори можно и json хранить вместо yaml, но почему-то приложение ломается когда передаю json, хотя я запыскаю через docker run вручную и все отлично работает.