Огромная благодарность за материал. Для тех, кто смотрит 8:22 копипастинг в nano: Ctrl+Shift+6 - начало копирования, далее перемещаем курсор (стрелки, PgUp, End, PgUp и прочее) у нас визуально выделяется блок. Фиксируем выделение Alt+6. Блок скопировался в буфер, вставить можно комбинацией Ctrl+U. MobaXterm позволяет выделять и копировать мышкой через контекстное меню.
Отличные видео, вы молодец! Докладываю с места событий, если не прописывать в hosts.txt способ логина (пароль не пароль), то по умолчанию проверяется как раз ключ и если пара совпадает - всё работает.
ребята пару часиков курил форумы ничего не получалось , менял пересоздавал ключи , пробовал вход просто по паролю (--ask-pass) выбивало ошибочку , а дело было в том что sshpass в ubuntu 20 не установлен по стоку , sudo apt-get install sshpass и Ping ~ Pong выполнился Спасибо большое за уроки
@@emigrant4life тоже самое. Я решил не использовать rsa а просто логин\пароль, все равно тест. Дак вот ни в какую не хочет подключяться - Permission denied (publickey,password).", и хоть тресни. По видимому буду пользоваться вашим советом и использовать RSA ключи.
@@emigrant4life большое спасибо за совет!! тоже затык был в этом. Но возник дополнительный вопрос - я не могу на удаленных машинах найти открытые части.. Ищу соответственно в папках .../.ssh/ но там ничего нет. Открытая часть не появляется. При этом подключение осуществляется. Можете пояснить куда они складываются командами ssh-copy?
Денис, оромное спасибо за старания и видео! Как на счет видео о реалиях в IT и не только в IT? Может про интересный опыт? Канадских реалиях? Благадарю еще раз!) Здоровья и успехов!
Ребят. У кого была проблема с ключами. (Permissions denied) проверьте правильность ключей. Если вы с мастера на слейв копируете публичный ключ в authorized keys из под винды (ctrl+c , ctrl+v) то у вас идут виндовые переносы строки и поэтому ваш ключ может не приниматься. Надеюсь кому то это поможет)
Во первых хочу спасибо сказать тебе Денис за твои труды, и старания для нас, от всего сердца благодарю. Простым языком рассказываешь. На 4:05 минуте вводишь имя пользователя КАКИМ ПОДКЛЮЧИШЬСЯ, я также делаю и когда пытаюсь подключиться выдаёт ошибку, но когда ввожу имя пользователя к КОТОРОМУ НУЖНО подключиться вот тогда подключается. В новых версиях по-другому я так понял:(
в соверменных версиях OpenSSH (начиная с версии 7.6) появлиась возможность "молча" принимать host key сервера и сообщать о проблеме, только в случае его изменения. Делается это прописыванием StrictHostKeyChecking accept-new в конфигурации openssh clinet у пользователя (~/.ssh/config) или глобально на уровне хоста (/etc/ssh/ssh_config). Последнее полезно если у вас ansible control node пользуется несколько человек одновременно.
Заметка: у меня мастер - убунту, создал 3 клиента: убунту,центос8, центос8. Когда ключи не работали на убунте, создал на мастере ключ и перекинул на клиента-убунту, пинг-понг прошел... С центосом не сработало. Нужно было наоборот сгенерить на клиенте ключ - и пинг-понг потом успешный.
Денис, спасибо за курс! У меня был завтык на гугл клауде, не хотело подключаться по ключам. Проблема была в том что я на машинах агентах выставлял возможность подключения через 22 и 443 порты, а для агента это не нужно, достаточно только сгенерировать ключ на мастере и добавить его в настройках машин агентов. потом ансибл ругался на некорректный файл с хостами, оставил только название группы и айпишник агента и пинг-понг прошел.
Вставлю еще своих 5 копеек, может кому нужно еще! кто ставит на virtualbox и генерирует ключи то обеменеваемся ведь public а в конфиге Дениса hosts.txt private вообщем меняем одно слово private_key_file на public_key_file и все работает
У меня не работал параметр ansible_pass. Заработало в другой комбинации: ansible_connection=ssh ansible_ssh_user=someUser ansible_ssh_pass=somePass Затем я проверил, заработает ли без первого параметра ()тип соединения). Работает. Значит, ssh это default-значение Затем я проверил, переименовав имя параметра юзера в старый формат - ansible_user. Тоже работает. А вот если использовать ansible_pass - не работает.
у кого еще проблемки с ключами то тернистым путем получилось все заставить работать - попробуйте у себя такое вот: 0. на ансибл мастере запускаем все команды (клиент не трогаем) 1. генерим ключ командой "ssh-keygen -t rsa" 2. если спросит пассфразу то хотите вводите хотите нет ( в продакшн лучше давайте фразу) но для теста и без нее удобней
3. как сгенерились ключи пишете команду "ssh-copy-id username@ip_for_the_target" ( если была пассфраза при генерерировании ключа то ее спросит после пароля к клиенту !!! и еще важный момент про пассфразу!!!! если вы ее используете то везде где будет ансибл юзать ваш ключ нужно будет ввести дополнительный параметр иначе ансибл сработает только раз и на остальные хосты просто застынет в ожидании ввода, но проблема в том что ввести негде нечего потому что этот вопрос задавался один раз. так что помните что нужно искать дополнительный параметр в ансибл который нужно дописать откуда ансиблу брать ответ на пассфразу так как это не безопасно в чистом виде гдето его хранить)
4. контент ключа будет послан клиенту и будет жить по путю "/home/username/.ssh/authorized_keys" 5. в хост файл для ансибла прописываете как пишет Денис в видео с названием вашего ключа не посредственно (вот мой пример) "ans-test1 ansible_host=192.168.1.61 ansible_user=username ansible_ssh_private_key_file=/home/username/.ssh/id_rsa "
6. Денис рекомендует конфиг файл ансибла держать в другом месте но я для теста просто чуток подкоректировал оригинальный (бекап оригинала сделан заранее) sudo cp ansible.cfg ansible.cfg.bkp sudo nano ansible.cfg в этом файле прям сверху в квадратных скобках слово [defaults] ниже допишите команду host_key_checking = false
7. запускаете sudo ansible all -m ping и у меня все сработало. в коментах перечитал все пару раз перед тем как у меня заработало - заметил что люди сразу дергаются на .pub файл который не трогаем надеюсь кому-то да поможет в 2021) Денис тебе еще раз благодарность за труды!
кароче для начинающих тут проблема именно с ключами - надо было их процесс получения описать подробнее а так то легко все остальное.... я так и не смог сделать.... печаль
Ну начинающим кто не знает как ключи генерируются и работают, Ansible рано учить. хотябы пару уроков посмотреть про SSH ключи. Я поднимал серверы на AWS, а там все только с ключами уже готовыми
В файле hosts.txt на master-машине прописываешь пользователя, которым будешь коннектиться, соответственно, такой юзер должен на управляемых машинах уже быть создан. В профиле этого пользователя создаешь дир .ssh (скрытую), в ней файл authorized_keys и пихаешь в него rsa-ключ с master-машины.Если на мастере (например работаешь и запускаешь ansible от root) ключ root-a еще не создан, то идешь в дир /root, создаешь директорию .ssh, переходишь и создаешь ключ командой ssh-keygen.Это из руководства по ansible.Также ключ на управляемый сервер можно скопировать командой ssh-copy-id, как пишут в комментариях ниже
Расскажите о формате YAML для ANSIBLE, чтобы его не весь перечитывать, а только те моменты которые нужны для сабж. Кстати установка ansible на Windows 10 не проблема (Windows Subsistem for Linux - даст Ubuntu)
с ключами вообще нифига непонятно. Откуда вы их скачали? Аманзон? у многих амзона нет. Ключ геннерурется на мастере энсибла и раскидывается на клиентов? или клиентские забираются на мастер энсибла? Какие ключи забирать pub или private на мастер?
Подскажите, мы генерируем SSH public/private ключи на машине с установленной Ansible(наш master server) и перекидываем public ключ на наши клиентские машины, я правильно понимаю? Просто из видео сложилось впечатление, что вы на клиентских машинах создали public/private ключи и закинули private на Ansible master server, тогда клиентские сервера у нас будут получать доступ по ключу к Ansible master server. Проясните этот момент пожалуйста.
Генерировать можешь где угодно. ssh-keygen enter, enter, enter Получишь два ключа Private,Public На всех клиентах нужно чтобы был Public SSH Key. Ansible пользуется Private SSH Key. Круто когда один и тотже ключ на всех, так проще с конфигурацией.
@@ADV-IT Всегда думал что на серверной части должны находится оба ключа public/private, а на клиентской public, что бы использовать ssh-copy-id, буду знать. У меня есть ещё вопрос по поводу ssh-agent, установил пароль на ssh, попытался сделать, чтобы пароль вообще не запрашивался при соединении после перезагрузки, но пока не получилось. Стоит zsh. Что-то я упускаю.
@@ADV-IT а если у меня 100 машин,мне получается вручную нужно будет на каждую из них заливать public key изначально, чтобы потом уже подключиться для настройки? Это же с ума можно сойти
где-то упустил, наверное, но по юзерам хостов, к кторым коннектимся - как бы по их правам данные дать? насчет судоерства - так понимаю надо добавлять зверей в судоеры без паролей?
1:33 Brothers Everywhere Raise you hands into the air We're warriors Warriors of The World Есть любимая песня у них? :) *спросил и убежал слушать старый плейлист*
Спасибо за видео! Хотел задать вопрос, а я могу отдать настройку ansible приложению на Питоне например. И в зависимости от введенных параметров в питон-приложении создал плэйбук и запустил оттуда. Так вообще делают?)
Где взять .pem ?? Несколько дней ищу уже. По паролю всё работает. НИГДЕ в инете нет .pem, кроме этого самого амазона. ВСЕГДА генерирует просто файл без расширения и .pub. Думаю далеко ни один я такой непонятливый... Как же бесит тупить на ерунде...
Тоже подзавис с этой траблой на освоении, я то на убунту запускал виртуальные машины. Решил вот каким способом : в домашнем каталоге есть ключ адрес /home/.ssh/id_rsa его надо указать в ansible/hosts.txt через nano. Затем пишем ssh-copy-is username@remote_host вводим yes на запрос и enter где username - это ваш логин на удаленный сервер, а remote_host - его ip адрес. После этого все заработает. Просто описанный в видео способ для Амазон, но как Денис и сказал - их много разных есть ;)
ssh key надежнее только тогда, когда приватный ключ хранишь не ввиде файла а на специальном аппаратном ключе либо на TPM2.0, в противном случае, угонят файл, и все пиши пропало.
@@ADV-IT есть пины на ключ или отпечаток или оттп например юбикей, но самое главное их должен быть не один, один у себя другой а сейфе, а валидность ключа подтверждать центром сертификации, чтобы а случае утери в миг можно было отозвать его и не ходить по тысяче хостов выпиливая от туда ключ
Т.к. pip-a не было поставил через # sudo amazon-linux-extras install ansible2. В результате config file = /etc/ansible/ansible.cfg, но когда создал в новой директории, и запустил команду, Ansible автоматически начал использовать новый. Как он понял в какой из файлов смотреть?
Есть приоритет проверки где есть ansible.cfg 1. ANSIBLE_CONFIG (environment variable if set) 2. ansible.cfg (in the current directory) 3. ~/.ansible.cfg (in the home directory) 4. /etc/ansible/ansible.cfg docs.ansible.com/ansible/latest/reference_appendices/general_precedence.html#configuration-settings
привет Денис) такой вопрос у тебя есть на канале как делать несколько юзеров в линукс ?я просто не увидел ( и у каждого пользователя которого ты создал на вертуал бокс разные айпи ? сори что задаю такие глупые вопросы но пытаюсь понять что вобще происходит застрял у тебя вAnsible и в Jenkins что там и там не понимаю как поднимать свои сервера и несколько юзеров. а амазон не использую поскольку ты сам говорил что он платный(
Я дико извиняюсь, а нет ли у вас видео как сделать авторизацию с ключами? а то с паролем не работает. я сделал sudo ansible -i hosts.txt test -m ping -u root --ask-pass , на одном серваке прокатило а на другом ошибка "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host". Я только учусь)
Вообще это очень удобная вещь, только к примеру хотелось понять, а если я хочу сделать пинг на все сервера, но при этом я хочу не прописывать в ансибл каждый раз новый хост, к примеру в баш есть возможность проверить top на всех серверах указав к примеру host1-host10 и записав это в файл >>log.txt, есть ли такая возможность?
Подскажите пожалуйста, это уже версии свежие, при установке ansible у меня уже существует большой конфиг файл в каталоге /etc/ansible/ansible.cfg а так же файл hosts в этом же каталоге. Второй вопрос - по каким каталогам ansible ищет свой конфиг файл? Допустим я хочу удалить дефолтный и создать свой. Версия ansible = 2.9.6
Я удалял конфигурации из /etc/ansible... и создавал в папке проекта в /home/ubuntu.. Проверишь что работает с помощью ansible --version. Хоть и поздно ответил, кому-то может пригодится кто убунту любит.
Денис, подскажи, пожалуйста. Я в свое время настроил ansible без inventary файла следующим образом: Прописал в /etc/ansible/hosts целевые серверы и их IP. А ssh ключи и прочие атрибуты закинул в /home/user/.ssh/config Все работало на ура, но вот теперь я думаю, а правильно ли это?
Прошу прощения у меня следующий вопрос: допустим мне создали кучу хостов в локальной сети и дали пароль для root(одинаковый для всех) у меня с centos8 не получается запустить на этих машинах модуль ping. Пишет permisson denided. Короче как запустить модуль ping на удаленном хосте из под root используя пароль а не ssh key. При попытке поключится по ssh - проблем нет.
By default, Ansible assumes you are using SSH keys to connect to remote machines. SSH keys are encouraged, but you can use password authentication if needed with the --ask-pass option. If you need to provide a password for privilege escalation (sudo, pbrun, etc.), use --ask-become-pass. docs.ansible.com/ansible/latest/user_guide/connection_details.html
Денис здравствуйте ! подскажите пожалуйста, скажем я хочу изменить расположение файла ansible.cfg на другое место , как это можно сделать ? а то я создаю его в другом месте , но после перезагрузки хоста , проверяю место его ansible --verison , там он обратно по умолчанию /etc/ansible/ansible.cfg показывает .
docs.ansible.com/ansible/2.4/intro_configuration.html Changes can be made and used in a configuration file which will be processed in the following order: * ANSIBLE_CONFIG (an environment variable) * ansible.cfg (in the current directory) * .ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg
Подскажите, что делаю не правильно. Ругается на ошибку "Failed to connect to the host via ssh. Permission denied ". Использую пароль для входа, пароль указал верный, другой сервер пингую, и через командную строку могу подключиться по ssh, но через ansible не хочет.
Если у кого-то будет вылетать такая ошибка: Error Permission denied (publickey) when I try to ssh В моем случае эта информация решила проблему: www.digitalocean.com/community/questions/error-permission-denied-publickey-when-i-try-to-ssh ua-cam.com/video/4MrX4Xq4mVQ/v-deo.html
Я вас сильно удивлю видимо, но и успокою все споры. Способ 100% проверенный. 1 на хостах должен стоять настроенный доступ по SSH 2 на мастере сгенерены ключи: ssh-keygen копируем ключь командой: ssh-copy-id developer@192.168.100.63 После этого содержимае паблик кея c мастера попадает в файл authorized_keys хоста понятно что девелопер и айпишник это хоста проверяем доступ по ssh ssh developer@192.168.100.63 если доступ есть то в файле hosts.txt при настройке ansible достаточно вот этого: CentOS1 ansible_host=192.168.100.63 ansible_user=developer Никаких паролей и никаких ключей !!! Также проверено с дебианом мастер был на ubunte. ansible --version ansible [core 2.12.8]
Сначало почитал коменты с ключами сам сделал: сгенерировал ssh-keygen их на серверах отправил приватыне ключи на master компутер ubuntu через ssh-copy-id -i они у меня сохранились в master компе .ssh/authorized_keys сразу два ключа в одном файле и мне просто их прописывать в [staging_servers]? только как ansible поймет где какой ключь использовать там же два ключа в одном файле authorized_keys ? или надо просто разбить на два файла с расширением pem? пробовал не подключается:( Или может есть какой по проще способ подключения с серверам, если у меня ubuntu и два сервера подняты на виртуалке тоже ubuntu. А то пробу. и не подключается че-то:(
Подскажите в чем может быть проблема, делаю все по урокам Failed to connect to the host via ssh: ssh: Could not resolve hostname ubuntu: Temporary failure in name resolution", "unreachable": true
ansible -i hosts.txt all -m ping при проверке первого подключения пинга к серваку выдает вот такую ошибку [WARNING]: * Failed to parse /home/ec2-user/ansible/hosts.txt with ini plugin: /home/ec2-user/ansible/hosts.txt:2: Invalid section entry: '[staging servers]'. Please make sure that there are no spacesin the section entry, and that there are no other invalid characters [WARNING]: Unable to parse /home/ec2-user/ansible/hosts.txt as an inventory source [WARNING]: No inventory was parsed, only implicit localhost is available [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' как думаете в чем проба? в гугле искал что то не нашел.
Еще не понятен один баг или даже не знаю как это описать. Когда останавливаю сервера на aws, соответственно меняется паблик ip на серверах, и я потом не могу к нему приконнектиться уже с новым айпишником, mobaxterm пишет что мол сервер вернул ключ и что не поддерживает аутентификационный метод, хотя до остановки и запуска серверов все работало идеально, выходит что каждый раз нужно новый ключ пересоздавать?
Тоже делал это в Aмазоне. Так вот с Aмазон Линуксом все в порядке, а если один из клиентов Дебиан, то ни в какую, работать, пока на нем не установишь Ansible. Кидает такую ошибку: Client2 | FAILED! => { "changed": false, "module_stderr": "Shared connection to 172.31.45.209 closed. ", "module_stdout": "/bin/sh: 1: /usr/bin/python: not found ", "msg": "MODULE FAILURE See stdout/stderr for the exact error", "rc": 127
Денис , как прописать в файле hosts.txt passphrase для ключа ? [test_ALL:vars] ansible_user=ec2-user ansible_ssh_private_key_file=/home/test/.ssh/test.pem
Hi Denis You installing ansible on your local host not on Amazon server right ? I am trying to install ansible on my local host ubuntu but getting this error E: Sub-process /usr/bin/dpkg returned an error code (1)
Я не пойму, ты просто сгенерировал ключи на клиентах (откуда взялись .pem расширение, ведь там создается id_rsa и id_rsa.pub, ты переименовал какой-то?) и передал их на мастер? ssh-copy-id делал с какого-то на какой-то?? ничего не ясно. Объясни пожалуйста!
Скажи, а linux1 и linux2 это хостнеймы клиентов? Потому что когда я прописываю в hosts-файле хостнейм клиента, мне пишет, что can`t resolve. А когда копирую .pem ключи с клиентов на мастера и прописываю их ansible_ssh_private_key_file= key.pem и пытаюсь сделать пинг, пишет, Permission denied (privatkey, password).. что делать?
linux1 и linux2 это просто я так назвал, это Label вместо них можешь прописать hostname только тогда не пиши ansible_host=xxx.xxx.xxx.xxx а с ключем какого юзера используешь? ansible_user= ??? должен быть владелец ключа.
При вводе команды ansible -i hosts.txt all -m ping возникает следующая ошибка: Ругается на CryptographyDeprecation мол что питон 2 больше не поддерживается основной командой и поддержка в криптографии ограничена, и затем: Unreachable! => { "changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.31.46.106 port 22: Connection timed out", "unreachable": true 22 порт открыт, айпишник приватный, нужного мне клиента
поменять на PermitRootLogin yes если использовать обычного юзера с правами на sudo то всё равно при первом вызове sudo просит пароль, даже если ты аутентифицируешься по ключу
Как с этим боротся? | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: (юзер на инстансе aws:ip): Permission denied (publickey). ", "unreachable": true } Путь к ключу который дает амазон в файле хостс прописан
Linux1 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host port 22: Connection timed out", "unreachable": true }
@@oleggordon2671 у меня данная проблема разрешилась изменением правил в Security Groups для AWS Linux Инстансов. Разрешил входящий и исходящий трафик со всех IP и заработало. В данном видео не рассмотрен процесс создания Amazon Linux Instans, возможно это есть в одном из видео, посвященном AWS.
А что делать, если нужно поменять yml файл на десятках машинах? Я начал настраивать мониторинг zabbix, через ансибле я могу установить агент на клиент машинах, но после нужно будет вносить изменения в yml, где нужно указать путь к Мастеру (везде одно и тоже тут легко) Но ещё нужен указать уникальный параметр то есть имя хоста Вот тут можно решить задачу? Не могу же я заходить в 30-40 машин и везде искать ямл файл и там менять один параметр Как это можно сделать автоматический????
Товарищи! Столкнулся с проблемой,пытался запустить playbook с пингом на сервер с ubuntu и red hat,но получил вот такую ошибку"fatal: [redhat]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 3.21.125.44 closed. ", "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory ", "msg": "MODULE FAILURE", "rc": 127}" C ubuntu решилось легко,установкой python(apt install python)(без указания версии,как в ошибке),но при попытки установить на red hat(yum install python),он говорит,что не может найти пакет. Помогите,кто знает)
Пробовал подключаться по паролю, не файлу ключей и постоянно была ошибка "Failed to connect to the host via ssh: root@ip_сервера: Permission denied (publickey,password). Что я только не пробовал и ansible_ssh_pass и ansible_password и ansible_pass и ещё много чего. В итоге оказалось, что дело в пароле, он был #w:@q#4t_J (там или : или # не воспринимаются), сменил на пароль чисто буквами - заработало.
В итоге даже с прописанном файлом ansible.cfg вылезает такая ошибка: "Failed to connect to the host via ssh: Warning: Permanently added '172.31.31.39' (ECDSA) to the list of known hosts. no such identity: home/ec2-user/.ssh/DenisKa-key1.pem: No such file or directory Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
Столкнулся с такой же проблемой, решение нашел тут, нужно изменить интерпретатор команд, и команду вбивал: ansible all -m ping www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-18-04-ru
Пробывал на AWS создать Amazon Linux Ami и на него поставить Ansible , ошибка: Linux1 | FAILED! => { "changed": false, "module_stderr": "Shared connection to 3.120.209.51 closed. ", "module_stdout": "/bin/sh: 1: /usr/bin/python: not found ", "msg": "MODULE FAILURE See stdout/stderr for the exact error", "rc": 127 } Пробывал поднять на в Virtuall_box-Ubuntu Descktop -поставить Ansible такая вот ошибка linux1 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: ubuntu@3.120.209.51: Permission denied (publickey).", "unreachable": true } Не знаю что уже делать
Спасибо , немного разобрался...... Я Ping пускал с Amazon Linux Ami(Python 2.7) и Ubuntu Descktop ( Python3.6 и 2.7) на Ubuntu Server18.04 ( Python 3.6 ) Оказалось что на Ubuntu Server18.04 нужно что бы стояла версия 2.7
как бы подразумевается что человек взявшийся за **автоматизацию** процессов конфигурирования УЖЕ является профессиональным системным администратором и умеет делать все вещи которые **автоматизирует** ручками.
Для тех у кого проблемы с ssh ключами 1. генерируем ключи и копируем id_rsa.pub в authorized_keys на удаленный хост 2. в host файле после ansible_user=username ПИШЕМ ansible_ssh_pass=PASSWORD, ansible_ssh_private_key_file=/home/username(Удаленного хоста)/.ssh/authorized_keys 3. На УДАЛЕННОМ ХОСТЕ ДОЛЖЕН БЫТЬ ТОЖЕ УСТАНОВЛЕН ANSIBLE ( sudo apt-add-repository ppa:ansible/ansible sudo apt-get update sudo apt-get install ansible ) и тогда все будет работать без ошибок
Привет. спасибо за твой труд, сижу изучаю) вопрос по данному видео. у тебя 2 арма, linux{1,2}. но ключ для них один и тот же использовал, почему законнектилось? и вообще зачем для ping аутентификация? возможно, в следующих уроках будет эта ошибка, так как скорее всего для пинга ключи не нужны, но я не успею сегодня все отсмотреть, к сожалению....
А почему не должно было законектится? Это не ping который ты знаешь, это проверка полного соединения с сервером, просто назвали её в Ansible тоже ping. Я про это говорил
Спасибо ) го следующий )
По твоим примерам я себе уже не мало скилов прокачал точно скажу больше чем пару лет универа)
5-ый уже записан, в конце недели опубликуется
Огромная благодарность за материал.
Для тех, кто смотрит 8:22 копипастинг в nano: Ctrl+Shift+6 - начало копирования, далее перемещаем курсор (стрелки, PgUp, End, PgUp и прочее) у нас визуально выделяется блок. Фиксируем выделение Alt+6. Блок скопировался в буфер, вставить можно комбинацией Ctrl+U. MobaXterm позволяет выделять и копировать мышкой через контекстное меню.
Отличные видео, вы молодец! Докладываю с места событий, если не прописывать в hosts.txt способ логина (пароль не пароль), то по умолчанию проверяется как раз ключ и если пара совпадает - всё работает.
Спасибо!
Спасибо!
ребята пару часиков курил форумы ничего не получалось , менял пересоздавал ключи , пробовал вход просто по паролю (--ask-pass) выбивало ошибочку , а дело было в том что sshpass в ubuntu 20 не установлен по стоку , sudo apt-get install sshpass и Ping ~ Pong выполнился
Спасибо большое за уроки
@@emigrant4life тоже самое. Я решил не использовать rsa а просто логин\пароль, все равно тест. Дак вот ни в какую не хочет подключяться - Permission denied (publickey,password).", и хоть тресни.
По видимому буду пользоваться вашим советом и использовать RSA ключи.
@@emigrant4life большое спасибо за совет!! тоже затык был в этом.
Но возник дополнительный вопрос - я не могу на удаленных машинах найти открытые части.. Ищу соответственно в папках .../.ssh/ но там ничего нет. Открытая часть не появляется. При этом подключение осуществляется. Можете пояснить куда они складываются командами ssh-copy?
@@АлексейГрищенко-с1г .ssh в каталоге пользователя ~/.ssh (или /home/username/.ssh
Денис, оромное спасибо за старания и видео! Как на счет видео о реалиях в IT и не только в IT? Может про интересный опыт? Канадских реалиях? Благадарю еще раз!) Здоровья и успехов!
спасибо за курс, очень полезно
Ребят. У кого была проблема с ключами. (Permissions denied) проверьте правильность ключей. Если вы с мастера на слейв копируете публичный ключ в authorized keys из под винды (ctrl+c , ctrl+v) то у вас идут виндовые переносы строки и поэтому ваш ключ может не приниматься. Надеюсь кому то это поможет)
Во первых хочу спасибо сказать тебе Денис за твои труды, и старания для нас, от всего сердца благодарю. Простым языком рассказываешь. На 4:05 минуте вводишь имя пользователя КАКИМ ПОДКЛЮЧИШЬСЯ, я также делаю и когда пытаюсь подключиться выдаёт ошибку, но когда ввожу имя пользователя к КОТОРОМУ НУЖНО подключиться вот тогда подключается. В новых версиях по-другому я так понял:(
в соверменных версиях OpenSSH (начиная с версии 7.6) появлиась возможность "молча" принимать host key сервера и сообщать о проблеме, только в случае его изменения. Делается это прописыванием
StrictHostKeyChecking accept-new
в конфигурации openssh clinet у пользователя (~/.ssh/config) или глобально на уровне хоста (/etc/ssh/ssh_config). Последнее полезно если у вас ansible control node пользуется несколько человек одновременно.
А можно пояснить зачем это нужно и как использовать ? Я просто тупой
Заметка: у меня мастер - убунту, создал 3 клиента: убунту,центос8, центос8. Когда ключи не работали на убунте, создал на мастере ключ и перекинул на клиента-убунту, пинг-понг прошел... С центосом не сработало. Нужно было наоборот сгенерить на клиенте ключ - и пинг-понг потом успешный.
Денис, спасибо за курс! У меня был завтык на гугл клауде, не хотело подключаться по ключам. Проблема была в том что я на машинах агентах выставлял возможность подключения через 22 и 443 порты, а для агента это не нужно, достаточно только сгенерировать ключ на мастере и добавить его в настройках машин агентов. потом ансибл ругался на некорректный файл с хостами, оставил только название группы и айпишник агента и пинг-понг прошел.
Спасибо за видео. Коммент в поддержку!
Вставлю еще своих 5 копеек, может кому нужно еще! кто ставит на virtualbox и генерирует ключи то обеменеваемся ведь public а в конфиге Дениса hosts.txt private вообщем меняем одно слово private_key_file на public_key_file и все работает
Спасибо! Сработало только с public, private выдавал ошибку
Я сейчас никак не могу подключится , на дропбоксе со своим зверинцем. Вот ищу решение в коментах к видео
У меня не работал параметр ansible_pass.
Заработало в другой комбинации:
ansible_connection=ssh ansible_ssh_user=someUser ansible_ssh_pass=somePass
Затем я проверил, заработает ли без первого параметра ()тип соединения). Работает. Значит, ssh это default-значение
Затем я проверил, переименовав имя параметра юзера в старый формат - ansible_user. Тоже работает.
А вот если использовать ansible_pass - не работает.
ansible_password=
@@4iki93 спасибо
Андрей, спасибо огромное!!!)
спасибо большое!)
у кого еще проблемки с ключами то тернистым путем получилось все заставить работать - попробуйте у себя такое вот:
0. на ансибл мастере запускаем все команды (клиент не трогаем)
1. генерим ключ командой "ssh-keygen -t rsa"
2. если спросит пассфразу то хотите вводите хотите нет ( в продакшн лучше давайте фразу) но для теста и без нее удобней
3. как сгенерились ключи пишете команду "ssh-copy-id username@ip_for_the_target" ( если была пассфраза при генерерировании ключа то ее спросит после пароля к клиенту !!! и еще важный момент про пассфразу!!!! если вы ее используете то везде где будет ансибл юзать ваш ключ нужно будет ввести дополнительный параметр иначе ансибл сработает только раз и на остальные хосты просто застынет в ожидании ввода, но проблема в том что ввести негде нечего потому что этот вопрос задавался один раз. так что помните что нужно искать дополнительный параметр в ансибл который нужно дописать откуда ансиблу брать ответ на пассфразу так как это не безопасно в чистом виде гдето его хранить)
4. контент ключа будет послан клиенту и будет жить по путю "/home/username/.ssh/authorized_keys"
5. в хост файл для ансибла прописываете как пишет Денис в видео с названием вашего ключа не посредственно (вот мой пример)
"ans-test1 ansible_host=192.168.1.61 ansible_user=username ansible_ssh_private_key_file=/home/username/.ssh/id_rsa "
6. Денис рекомендует конфиг файл ансибла держать в другом месте но я для теста просто чуток подкоректировал оригинальный (бекап оригинала сделан заранее)
sudo cp ansible.cfg ansible.cfg.bkp
sudo nano ansible.cfg
в этом файле прям сверху в квадратных скобках слово [defaults]
ниже допишите команду host_key_checking = false
7. запускаете sudo ansible all -m ping
и у меня все сработало.
в коментах перечитал все пару раз перед тем как у меня заработало - заметил что люди сразу дергаются на .pub файл который не трогаем
надеюсь кому-то да поможет в 2021)
Денис тебе еще раз благодарность за труды!
кароче для начинающих тут проблема именно с ключами - надо было их процесс получения описать подробнее
а так то легко все остальное.... я так и не смог сделать.... печаль
Ну начинающим кто не знает как ключи генерируются и работают, Ansible рано учить. хотябы пару уроков посмотреть про SSH ключи.
Я поднимал серверы на AWS, а там все только с ключами уже готовыми
У меня кстати есть урок по AWS и эти ключи
В файле hosts.txt на master-машине прописываешь пользователя, которым будешь коннектиться, соответственно, такой юзер должен на управляемых машинах уже быть создан. В профиле этого пользователя создаешь дир .ssh (скрытую), в ней файл authorized_keys и пихаешь в него rsa-ключ с master-машины.Если на мастере (например работаешь и запускаешь ansible от root) ключ root-a еще не создан, то идешь в дир /root, создаешь директорию .ssh, переходишь и создаешь ключ командой ssh-keygen.Это из руководства по ansible.Также ключ на управляемый сервер можно скопировать командой ssh-copy-id, как пишут в комментариях ниже
@@uvee1134 подскажите пожалуйста, где можно найти на управляемых серверах скопированный ключ с основного? Я не могу найти.. в папках /.ssh/ его нету.
"ихний" - это топ
Расскажите о формате YAML для ANSIBLE, чтобы его не весь перечитывать, а только те моменты которые нужны для сабж. Кстати установка ansible на Windows 10 не проблема (Windows Subsistem for Linux - даст Ubuntu)
Сделаю!
Раскидываю ssh ключи, так ssh-keygen && for host in $(cat hosts.txt); do ssh-copy-id $host; done , и никакого геморроя)
Долго же я промучился, с клиентов ключ сбрасывал на сервер, а надо было наоборот))
Спасибо! Подсказка помогла)
кто пробует на виртуалках без ssh ключа, в файле hosts.txt надо указать ansible_ssh_pass=пароль от хоста
Денис это не упомянул
как же я тебе благодарен друг мой на удаленке, а как через ssh кey подключаться я так и не понял
да, тоже столкнулся с этим.
@@ashtonkutcherov3992 не за что, рад что помог
@@devopsengineer4486 мне тоже помог, друг:)
спасибо, можно еще добавить про specific port - ansible_port=5555
Привет! Спасибо за уроки!
Опиши, пожалуйста, процедуру получения .pem файликов.
Заранее спасибо!
В Линуксе запусти
ssh-keygen
@@ADV-IT на хосте или подчиненных ему компьютерах/серверах?
@@timbogdanov8000 генерируешь где угодно,
Public ключ закидываешь на подчиненные сервера
Private ключ закидываешь на сервер откуда запускаешь Ansible
@@ADV-IT спасибо!
с ключами вообще нифига непонятно. Откуда вы их скачали? Аманзон? у многих амзона нет.
Ключ геннерурется на мастере энсибла и раскидывается на клиентов? или клиентские забираются на мастер энсибла? Какие ключи забирать pub или private на мастер?
Ансибыл - сила! В чём сила брат? В Ансибыл.
*оооооо новый видос, спасибо!*
Подскажите, мы генерируем SSH public/private ключи на машине с установленной Ansible(наш master server) и перекидываем public ключ на наши клиентские машины, я правильно понимаю? Просто из видео сложилось впечатление, что вы на клиентских машинах создали public/private ключи и закинули private на Ansible master server, тогда клиентские сервера у нас будут получать доступ по ключу к Ansible master server. Проясните этот момент пожалуйста.
Генерировать можешь где угодно. ssh-keygen enter, enter, enter
Получишь два ключа Private,Public
На всех клиентах нужно чтобы был Public SSH Key.
Ansible пользуется Private SSH Key.
Круто когда один и тотже ключ на всех, так проще с конфигурацией.
@@ADV-IT Всегда думал что на серверной части должны находится оба ключа public/private, а на клиентской public, что бы использовать ssh-copy-id, буду знать. У меня есть ещё вопрос по поводу ssh-agent, установил пароль на ssh, попытался сделать, чтобы пароль вообще не запрашивался при соединении после перезагрузки, но пока не получилось. Стоит zsh. Что-то я упускаю.
@@ADV-IT Всё так и сделал, но при попытке подключения всё равно спрашивает пароль, в чём может быть причина?
@@ADV-IT а если у меня 100 машин,мне получается вручную нужно будет на каждую из них заливать public key изначально, чтобы потом уже подключиться для настройки? Это же с ума можно сойти
@@AnybuSsS Можешь управлять используя username и password
11:32 вообще ещё есть хорошая практика , пользоваться пакетом manpage, чтобы не искать что-то в браузере, а сразу в cli прочитать весь основной мануал
где-то упустил, наверное, но по юзерам хостов, к кторым коннектимся - как бы по их правам данные дать? насчет судоерства - так понимаю надо добавлять зверей в судоеры без паролей?
sudo NOPASSWD
1:33
Brothers Everywhere
Raise you hands into the air
We're warriors
Warriors of The World
Есть любимая песня у них? :)
*спросил и убежал слушать старый плейлист*
У MANOWAR?
1. The Crown and the Ring
2. Heart of Steel
Да и многие другие
Ага, у них. Хорошая группа :)
Старички понемногу уходят. На всю катушку играли и до самого конца на сцене работают.
Спасибо )
Спасибо за видео! А нельзя ли просто создать ключи через ssh-keygen , а после ssh-copy-id ?
Для Ansible ключи должны быть уже установлены.
Для копирования Public Key на удалённый сервер можно использовать: ssh-copy-id user@server и не забыть chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
кажется для aws ключ должен быть 400
Спасибо за видео! Хотел задать вопрос, а я могу отдать настройку ansible приложению на Питоне например. И в зависимости от введенных параметров в питон-приложении создал плэйбук и запустил оттуда. Так вообще делают?)
Так не видел что бы кто-то делал, но можешь сделать
агонь!
Люди. А есть где-нибудь step by step с virtualbox
От души
Начал делать все по инструкции, не получилось)
Начав гуглить и нужно было писать ansible_ssh_user, это нововведения произошли с даты записи видео?
Где взять .pem ?? Несколько дней ищу уже. По паролю всё работает. НИГДЕ в инете нет .pem, кроме этого самого амазона. ВСЕГДА генерирует просто файл без расширения и .pub. Думаю далеко ни один я такой непонятливый... Как же бесит тупить на ерунде...
когда генеришь через keygen то получаешь:
id_rsa это PrivateKey
id_rsa.pub это PublicKey который и есть .pem переименуй его просто :)
Этот Public и используешь чтобы подключатся
Тоже подзавис с этой траблой на освоении, я то на убунту запускал виртуальные машины. Решил вот каким способом : в домашнем каталоге есть ключ адрес /home/.ssh/id_rsa его надо указать в ansible/hosts.txt через nano. Затем пишем ssh-copy-is username@remote_host вводим yes на запрос и enter где username - это ваш логин на удаленный сервер, а remote_host - его ip адрес. После этого все заработает. Просто описанный в видео способ для Амазон, но как Денис и сказал - их много разных есть ;)
🤦
Супер видео, спасибо).
ssh key надежнее только тогда, когда приватный ключ хранишь не ввиде файла а на специальном аппаратном ключе либо на TPM2.0, в противном случае, угонят файл, и все пиши пропало.
а аппаратный ключ надежный только тогда когда хранишь его в сейфе и ключ от сейфа потерял
@@ADV-IT есть пины на ключ или отпечаток или оттп например юбикей, но самое главное их должен быть не один, один у себя другой а сейфе, а валидность ключа подтверждать центром сертификации, чтобы а случае утери в миг можно было отозвать его и не ходить по тысяче хостов выпиливая от туда ключ
thx
Thank you so much.
Если захотите попробовать с паролем ssh, тогда ключ будет ansible_ssh_pass=
Дай тебе знания всего на свете, добрый человек. Спасибо
Толково, лайк
Т.к. pip-a не было поставил через # sudo amazon-linux-extras install ansible2. В результате config file = /etc/ansible/ansible.cfg, но когда создал в новой директории, и запустил команду, Ansible автоматически начал использовать новый. Как он понял в какой из файлов смотреть?
Есть приоритет проверки где есть ansible.cfg
1. ANSIBLE_CONFIG (environment variable if set)
2. ansible.cfg (in the current directory)
3. ~/.ansible.cfg (in the home directory)
4. /etc/ansible/ansible.cfg
docs.ansible.com/ansible/latest/reference_appendices/general_precedence.html#configuration-settings
привет Денис) такой вопрос у тебя есть на канале как делать несколько юзеров в линукс ?я просто не увидел ( и у каждого пользователя которого ты создал на вертуал бокс разные айпи ? сори что задаю такие глупые вопросы но пытаюсь понять что вобще происходит застрял у тебя вAnsible и в Jenkins что там и там не понимаю как поднимать свои сервера и несколько юзеров. а амазон не использую поскольку ты сам говорил что он платный(
У юзеров нету IP.
У серверов есть IP.
@@ADV-IT понял спасибо)
Я дико извиняюсь, а нет ли у вас видео как сделать авторизацию с ключами? а то с паролем не работает. я сделал sudo ansible -i hosts.txt test -m ping -u root --ask-pass
, на одном серваке прокатило а на другом ошибка "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host". Я только учусь)
Вообще это очень удобная вещь, только к примеру хотелось понять, а если я хочу сделать пинг на все сервера, но при этом я хочу не прописывать в ансибл каждый раз новый хост, к примеру в баш есть возможность проверить top на всех серверах указав к примеру host1-host10 и записав это в файл >>log.txt, есть ли такая возможность?
Да, просто сам сгенирируй свой хост файл
@@ADV-IT типо
[hosts]
host1-host10
Или
host1
host2 e.t.c?
Если так, то необязательно же им прописывать адреса если он поймет их по доменному имени?
Подскажите пожалуйста, это уже версии свежие, при установке ansible у меня уже существует большой конфиг файл в каталоге /etc/ansible/ansible.cfg а так же файл hosts в этом же каталоге. Второй вопрос - по каким каталогам ansible ищет свой конфиг файл? Допустим я хочу удалить дефолтный и создать свой. Версия ansible = 2.9.6
Я удалял конфигурации из /etc/ansible... и создавал в папке проекта в /home/ubuntu.. Проверишь что работает с помощью ansible --version. Хоть и поздно ответил, кому-то может пригодится кто убунту любит.
Денис, подскажи, пожалуйста.
Я в свое время настроил ansible без inventary файла следующим образом:
Прописал в /etc/ansible/hosts целевые серверы и их IP.
А ssh ключи и прочие атрибуты закинул в /home/user/.ssh/config
Все работало на ура, но вот теперь я думаю, а правильно ли это?
нет
Что за ключи-то? RSA? DSA? private? public?
Ssh-copy-id для копирования ключей.
Я обычно генерирую один ключ на сервере и копирую его этой командой на все клиенты, это гут или есть более правильный метод?
У меня пишет что отказано в доступе на руте, но если я захожу через пользователей то все норм как исправить?
Хорошо перепрыгнул про создание ключей((
Создание ключей на уроках Linux
ssh-keygen
@@ADV-IT на записи видео, не расслышал , какой прогой лучше скопировать ключи?
MobaXterm
@@Zvezd83 наконец-то. Большое спасибо
И вообще на сколько безопасно и правильно хранить все ключи от клиентов на сервере ansible .
Можешь хранить их отдельно, но скачивать при запуске Ansible
скажем первый таск исполняется локально на мастере и это скачать ключи.
Прошу прощения у меня следующий вопрос:
допустим мне создали кучу хостов в локальной сети и дали пароль для root(одинаковый для всех) у меня с centos8 не получается запустить на этих машинах модуль ping. Пишет permisson denided.
Короче как запустить модуль ping на удаленном хосте из под root используя пароль а не ssh key.
При попытке поключится по ssh - проблем нет.
By default, Ansible assumes you are using SSH keys to connect to remote machines. SSH keys are encouraged, but you can use password authentication if needed with the --ask-pass option. If you need to provide a password for privilege escalation (sudo, pbrun, etc.), use --ask-become-pass.
docs.ansible.com/ansible/latest/user_guide/connection_details.html
Денис здравствуйте ! подскажите пожалуйста, скажем я хочу изменить расположение файла ansible.cfg на другое место , как это можно сделать ? а то я создаю его в другом месте , но после перезагрузки хоста , проверяю место его ansible --verison , там он обратно по умолчанию /etc/ansible/ansible.cfg показывает .
docs.ansible.com/ansible/2.4/intro_configuration.html
Changes can be made and used in a configuration file which will be processed in the following order:
* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg
Подскажите, что делаю не правильно. Ругается на ошибку "Failed to connect to the host via ssh. Permission denied ". Использую пароль для входа, пароль указал верный, другой сервер пингую, и через командную строку могу подключиться по ssh, но через ansible не хочет.
запусти с -vvv в конце, и посмотри логи
в убунте 18 уже есть
ansible 2.7.6
config file = /etc/ansible/ansible.cfg по дефолту получается нада редактировать этат фаил?
Можешь его, а можешь создать в папке с твоим проектов, тогда он будет испольщоваться, который в папке проекта.
Если у кого-то будет вылетать такая ошибка:
Error Permission denied (publickey) when I try to ssh
В моем случае эта информация решила проблему:
www.digitalocean.com/community/questions/error-permission-denied-publickey-when-i-try-to-ssh
ua-cam.com/video/4MrX4Xq4mVQ/v-deo.html
про AWS подключение к серверам что-то не понял. Перед этим необходимо про AWS изучить? Придется создавать аккаунт AWS.
в голове каша можете упорядочить, что и в каком порядке учить? не перепрыгивая технологии, ато у меня дыры в голове. спасибо большое
Не важно где у тебя сервера, я для удобства доднял в AWS.
Можешь вируталок несколько поднять в VirtualBox или VMWare
Я вас сильно удивлю видимо, но и успокою все споры. Способ 100% проверенный.
1 на хостах должен стоять настроенный доступ по SSH
2 на мастере сгенерены ключи:
ssh-keygen
копируем ключь командой:
ssh-copy-id developer@192.168.100.63
После этого содержимае паблик кея c мастера попадает в файл authorized_keys хоста
понятно что девелопер и айпишник это хоста
проверяем доступ по ssh
ssh developer@192.168.100.63
если доступ есть то в файле hosts.txt при настройке ansible достаточно вот этого:
CentOS1 ansible_host=192.168.100.63 ansible_user=developer
Никаких паролей и никаких ключей !!!
Также проверено с дебианом
мастер был на ubunte.
ansible --version
ansible [core 2.12.8]
Наконец-то ) все заработало )
во, спасибо! заработало
в закрепы надо, спасибо
Сначало почитал коменты с ключами сам сделал: сгенерировал ssh-keygen их на серверах отправил приватыне ключи на master компутер ubuntu через ssh-copy-id -i они у меня сохранились в master компе .ssh/authorized_keys сразу два ключа в одном файле и мне просто их прописывать в [staging_servers]? только как ansible поймет где какой ключь использовать там же два ключа в одном файле authorized_keys ? или надо просто разбить на два файла с расширением pem? пробовал не подключается:(
Или может есть какой по проще способ подключения с серверам, если у меня ubuntu и два сервера подняты на виртуалке тоже ubuntu. А то пробу. и не подключается че-то:(
сгенерируй ОДНУ пару ключей на Master , и скопируй его PrivateKey на все Client компутеры
Следующий урок есть в плейлисте, но он недоступен...
Ага, я его уже сделал и загрузил, но не опубликовал, думая изменить кое-что наверное. в конце недели опубликуется
С нетерпением ждем! ))
На прошлой неделе открыл для себя этот замечательный канал и уже почти все посмотрел ))
Подскажите в чем может быть проблема, делаю все по урокам
Failed to connect to the host via ssh: ssh: Could not resolve hostname ubuntu: Temporary failure in name resolution",
"unreachable": true
Could not resolve hostname ubuntu
Компьютер с DNS именем ubuntu не найден, может просто IP его пропиши как я делал
@@ADV-IT хорошо попробую, подскажи еще что за IP ты вводил в хост? а то те что у отображены в ЕС2 и что ты прописывал в хост различаються
@@ADV-IT в ansible_hosts=прописан Privat IP в ainsible_user=ubuntu. как я понимаю у тебя хостнейм это linux1 а где мне можно это у себя посмотреть
ansible -i hosts.txt all -m ping
при проверке первого подключения пинга к серваку выдает вот такую ошибку
[WARNING]: * Failed to parse /home/ec2-user/ansible/hosts.txt with ini plugin: /home/ec2-user/ansible/hosts.txt:2: Invalid section entry:
'[staging servers]'. Please make sure that there are no spacesin the section entry, and that there are no other invalid characters
[WARNING]: Unable to parse /home/ec2-user/ansible/hosts.txt as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
как думаете в чем проба? в гугле искал что то не нашел.
Файл host какой-то не такой
@@ADV-IT ок будем искать спасибо.
@@jamzey7568 lease make sure that there are no spacesin the section entry, and that there are no other invalid characters
Пробелы уберите
Еще не понятен один баг или даже не знаю как это описать.
Когда останавливаю сервера на aws, соответственно меняется паблик ip на серверах, и я потом не могу к нему приконнектиться уже с новым айпишником, mobaxterm пишет что мол сервер вернул ключ и что не поддерживает аутентификационный метод, хотя до остановки и запуска серверов все работало идеально, выходит что каждый раз нужно новый ключ пересоздавать?
Это не баг, чтобы Public IP не менялись, используй ElasticIP приаттаченный. PrivateIP не меняются.
Знания AWS нужны тут.
@@ADV-IT Я курю твои видосы по AWS и параллельно Ansible:)))
@@ADV-IT Окей, применим elasticIP
Тоже делал это в Aмазоне. Так вот с Aмазон Линуксом все в порядке, а если один из клиентов Дебиан, то ни в какую, работать, пока на нем не установишь Ansible. Кидает такую ошибку:
Client2 | FAILED! => {
"changed": false,
"module_stderr": "Shared connection to 172.31.45.209 closed.
",
"module_stdout": "/bin/sh: 1: /usr/bin/python: not found
",
"msg": "MODULE FAILURE
See stdout/stderr for the exact error",
"rc": 127
Я на первых уроках говорил что нужен Python?
Вот тебе в ощибке всё обясняют */usr/bin/python: not found*
Я провтыкал этот момент, сори)
@@ADV-IT даже уточню, тоже столкнулся с такой ошибкой хотя установил пайтон (python3 verison 3.6.7), баг ушел когда установил python version 2.7.
Какая у тебя клавиатура?
Это лэптоп
Денис , как прописать в файле hosts.txt passphrase для ключа ?
[test_ALL:vars]
ansible_user=ec2-user
ansible_ssh_private_key_file=/home/test/.ssh/test.pem
Перед запуском Playbook тебе нужно
*ssh-add ~/.ssh/id_rsa* один раз
Подскажите, чтобы через virtualbox тренироваться, достаточно создать 3 машины, одну с ансибл и две простых, используя сетевой мост?
Конечно
Спасибо за урок. Было бы неплохо сделать отдельное видео по созданию конфига
ауруму привет)
ansible_ssh_pass
The ssh password to use (never store this variable in plain text; always use a vault. See Variables and Vaults)
Так и есть
есть вопрос,если настроин LDAP, то у меня будет доступ без ssh keys и пароля?
Будет, но там подругому настраивать надо LDAP authentication
@@ADV-IT а как именно?
@@ashadams7136 посмотри документацию. Там не совсем просто. Я один раз делал давно на работе
@@ADV-IT вот у меня LDAP уже настроен,ансибл заработал без ключей и пароля. Только я не могу понять по какому принципу
Магия
Казалось бы, зачем люди придумали ssh-copy-id
Денис, чтоб не набирать текст его можно скопировать
Hi Denis
You installing ansible on your local host not on Amazon server right ?
I am trying to install ansible on my local host ubuntu but getting this error
E: Sub-process /usr/bin/dpkg returned an error code (1)
yes, ansible installed on my laptop.
Try to follow docs: docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
dpkg looks like not Ubuntu, ubuntu using apt-get
подскажите, ключи приватные указываете от других серверов?
да
Мой ключ key.ppk защищен паролем. Где его указать? и так чтобы каждый раз не приходилось его вводить снова
Попробуй
eval "$(ssh-agent -s)"
ssh-add key.ppk
linux1 ansible_host=192.168.0.104 ansible_ssh_user=qwer ansible_ssh_pass=asdf
если что. у меня только так уговорилось подключаться
Я не пойму, ты просто сгенерировал ключи на клиентах (откуда взялись .pem расширение, ведь там создается id_rsa и id_rsa.pub, ты переименовал какой-то?) и передал их на мастер? ssh-copy-id делал с какого-то на какой-то?? ничего не ясно. Объясни пожалуйста!
id_rds эти и есть pem (private key)
Скажи, а linux1 и linux2 это хостнеймы клиентов? Потому что когда я прописываю в hosts-файле хостнейм клиента, мне пишет, что can`t resolve. А когда копирую .pem ключи с клиентов на мастера и прописываю их ansible_ssh_private_key_file= key.pem и пытаюсь сделать пинг, пишет, Permission denied (privatkey, password).. что делать?
linux1 и linux2 это просто я так назвал, это Label
вместо них можешь прописать hostname только тогда не пиши ansible_host=xxx.xxx.xxx.xxx
а с ключем какого юзера используешь? ansible_user= ??? должен быть владелец ключа.
ADV-IT просто скажи, чьи ключи мне транспортить на мастер и какого юзера писать?
Netsiders Channel Private ключи на мастер. Сам выбирай ключи какого юзера.
А где 3-я часть?
ua-cam.com/video/QZWJvuTjNKk/v-deo.html
@@ADV-IT о, спасибо! А то ютюб почемуто после 2-го сразу 4-ю предлагал
При вводе команды ansible -i hosts.txt all -m ping возникает следующая ошибка:
Ругается на CryptographyDeprecation мол что питон 2 больше не поддерживается основной командой и поддержка в криптографии ограничена, и затем:
Unreachable! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 172.31.46.106 port 22: Connection timed out",
"unreachable": true
22 порт открыт, айпишник приватный, нужного мне клиента
А кто пользуется Python 2?
Пару лет назад все перешли на Python 3
@@ADV-IT Так, глупый вопрос, но как задействовать питон 3? Yum install python3? Сервер Linux Ami amazon
@@ADV-IT нашёл пост про накатку. Огромное спасибо, не обратил внимание на старый интерпретатор! Ты лучший! А видосы топ!!!!
@@ADV-IT накатил питон 3й, но при команде ansible -i.... он все равно обращается ко 2й версии...
как указать другой порт ssh в инвентори файле?
myserver1:2222
myserver2:4444
Создал виртуалки на авс, как ключи с компа отправить на мастер ансибле?
Copy paste?
Вот тут показал как делал Copy Paste ua-cam.com/video/-KOMKBtL_7I/v-deo.html
Как быть если стоит настройка PermitRootLogin no ?
Сделай юзера vasya дай ему NOPASSWD: ALL доступ в /etc/sudoers и используй его, а не root
поменять на PermitRootLogin yes
если использовать обычного юзера с правами на sudo то всё равно при первом вызове sudo просит пароль, даже если ты аутентифицируешься по ключу
Как с этим боротся?
| UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: (юзер на инстансе aws:ip): Permission denied (publickey).
",
"unreachable": true
}
Путь к ключу который дает амазон в файле хостс прописан
тож такая проблема
Linux1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host port 22: Connection timed out",
"unreachable": true
}
@@oleggordon2671 у меня данная проблема разрешилась изменением правил в Security Groups для AWS Linux Инстансов. Разрешил входящий и исходящий трафик со всех IP и заработало. В данном видео не рассмотрен процесс создания Amazon Linux Instans, возможно это есть в одном из видео, посвященном AWS.
А что делать, если нужно поменять yml файл на десятках машинах?
Я начал настраивать мониторинг zabbix, через ансибле я могу установить агент на клиент машинах, но после нужно будет вносить изменения в yml, где нужно указать путь к Мастеру (везде одно и тоже тут легко)
Но ещё нужен указать уникальный параметр то есть имя хоста
Вот тут можно решить задачу? Не могу же я заходить в 30-40 машин и везде искать ямл файл и там менять один параметр
Как это можно сделать автоматический????
Смотри дальше, есть урок на эту тему
Товарищи!
Столкнулся с проблемой,пытался запустить playbook с пингом на сервер с ubuntu и red hat,но получил вот такую ошибку"fatal: [redhat]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 3.21.125.44 closed.
", "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory
", "msg": "MODULE FAILURE", "rc": 127}"
C ubuntu решилось легко,установкой python(apt install python)(без указания версии,как в ошибке),но при попытки установить на red hat(yum install python),он говорит,что не может найти пакет.
Помогите,кто знает)
sudo yum install python3
@@ADV-IT,пробовал,но он говорит.что уже установлен
@@ADV-IT, проблема решилась переименованием Python2.7 в python )
You can use ssh-agent
Зачем Ansible делать подключение к серверу чтобы пингануть ?
Это не Пинг как ты думаешь, это и есть проверка подключения, проверка логина на сервер.
то есть это не icmp-пинг, а а что то вроде login check ?
Пробовал подключаться по паролю, не файлу ключей и постоянно была ошибка "Failed to connect to the host via ssh: root@ip_сервера: Permission denied (publickey,password). Что я только не пробовал и ansible_ssh_pass и ansible_password и ansible_pass и ещё много чего. В итоге оказалось, что дело в пароле, он был #w:@q#4t_J (там или : или # не воспринимаются), сменил на пароль чисто буквами - заработало.
В итоге даже с прописанном файлом ansible.cfg вылезает такая ошибка: "Failed to connect to the host via ssh: Warning: Permanently added '172.31.31.39' (ECDSA) to the list of known hosts.
no such identity: home/ec2-user/.ssh/DenisKa-key1.pem: No such file or directory
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
home/ec2-user/.ssh/DenisKa-key1.pem: No such file
Файл не наёден, путь не правильный
@@ADV-IT по команде ll видно, что он там лежит
Ну тогда Permission denied
запускай ansible с -vvvv и смотри где ощибка
@@ADV-IT отпишусь попозже тогда с развёрнутой ошибкой
ERROR! Missing target hosts
Столкнулся с такой же проблемой, решение нашел тут, нужно изменить интерпретатор команд, и команду вбивал: ansible all -m ping
www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-18-04-ru
Пробывал на AWS создать Amazon Linux Ami и на него поставить Ansible , ошибка:
Linux1 | FAILED! => {
"changed": false,
"module_stderr": "Shared connection to 3.120.209.51 closed.
",
"module_stdout": "/bin/sh: 1: /usr/bin/python: not found
",
"msg": "MODULE FAILURE
See stdout/stderr for the exact error",
"rc": 127
}
Пробывал поднять на в Virtuall_box-Ubuntu Descktop -поставить Ansible такая вот ошибка
linux1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ubuntu@3.120.209.51: Permission denied (publickey).",
"unreachable": true
}
Не знаю что уже делать
Читай что написано в ошибках, всё понятно ведь
*/usr/bin/python: not found*
*Permission denied (publickey)*
Установи Python
поменяй парва доступа на свой ключ
Спасибо , немного разобрался......
Я Ping пускал с Amazon Linux Ami(Python 2.7) и Ubuntu Descktop ( Python3.6 и 2.7) на Ubuntu Server18.04 ( Python 3.6 )
Оказалось что на Ubuntu Server18.04 нужно что бы стояла версия 2.7
Автор купи usb микрофон - звук отвратный
Это и есть USB, позже купил лучше
@@ADV-IT я брал петличный за полторы штуки. Отлично фильтрует шумы и звук хороший.
Зря не рассказали, как ключи создавать и шарить. Важная часть. Хотя и из темы про ssh, пришлось освежать знания из внешних к видео источников..
как бы подразумевается что человек взявшийся за **автоматизацию** процессов конфигурирования УЖЕ является профессиональным системным администратором и умеет делать все вещи которые **автоматизирует** ручками.
Для тех у кого проблемы с ssh ключами
1. генерируем ключи и копируем id_rsa.pub в authorized_keys на удаленный хост
2. в host файле после ansible_user=username ПИШЕМ ansible_ssh_pass=PASSWORD, ansible_ssh_private_key_file=/home/username(Удаленного хоста)/.ssh/authorized_keys
3. На УДАЛЕННОМ ХОСТЕ ДОЛЖЕН БЫТЬ ТОЖЕ УСТАНОВЛЕН ANSIBLE
( sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible )
и тогда все будет работать без ошибок
На УДАЛЕННОМ ХОСТЕ НЕ ДОЛЖЕН БЫТЬ УСТАНОВЛЕН ANSIBLE, а только Pyhton
МУЖИК! БЛАГОДАРНОСТЬ ТЕБЕ ВЕЛИКАЯ И НИЗКИЙ ПОКЛОН ДО ЗЕМЛИ!
ВТОРОЙ ЧАС НОЧИ! КОТОРЫЙ ДЕНЬ ПОДРЯД!
ТЫ ИЗБАВИЛ МЕНЯ ОТ НЕПОНЯТОК!!!
Привет. спасибо за твой труд, сижу изучаю) вопрос по данному видео. у тебя 2 арма, linux{1,2}. но ключ для них один и тот же использовал, почему законнектилось? и вообще зачем для ping аутентификация? возможно, в следующих уроках будет эта ошибка, так как скорее всего для пинга ключи не нужны, но я не успею сегодня все отсмотреть, к сожалению....
А почему не должно было законектится?
Это не ping который ты знаешь, это проверка полного соединения с сервером, просто назвали её в Ansible тоже ping.
Я про это говорил
@@ADV-IT а как можно приконнектиться по 1 ключу на 2 разные машины? там же генерация ключа неимоверная, совпадения исключены.
Ну просто копируешь один и тоже ключ и всё