Alex
почему?
это уже оффтопик
Dan
это уже оффтопик
ну тогда буду рад в личку, если не лень. Мне как раз надо наладить AWS+GCP+Azure
Отделение Bereke Bank
Alex
два года назад когда столкнулся то в ансибле даже модулей не было нормальных для работы с GCP. И я говорю про базовые вещи аля GCE/LB иn/&g Потом они затеяли глобальную миграцию на новый тип модулей gcp_. И когда я их пробовал полгода с пустя они были очень очень сырыми, и по сути не пригодными для продакшена
Alex
посмотрел даже свою переписку с ребятами из гугла
Alex
возможно сейчас прямо все сильно поменялось, не берусь утверждать, так как последние два года использую tf и особых проблем нет
Sergey
я всегда не понимал прикол с терраформом на самом деле. У меня provisioning через ансибль прекрасно пашет
Да нет прикола. Это если кто не умеет в Анисбл, то ему хоть ТФ, хоть чего - без разницы :-D Всё равно сделает императивно и ещё со стейтом в придачу.
Dan
Да нет прикола. Это если кто не умеет в Анисбл, то ему хоть ТФ, хоть чего - без разницы :-D Всё равно сделает императивно и ещё со стейтом в придачу.
я давно уже гоняю linchpin, он просто обертка вокруг ансибля, но умеет в кучу облаков и не только, и вроде как прекрасно справляется. Единственное на что я натыкался, иногда почему-то ансибле не способен поднять много инстансов на AWS, ругаясь на их недоступность, хотя вручную тот же запрос проходит. Обычно такое при запросе на сотни очень больших машин, мелочь отрабатывает без проблем
Alex
https://i.imgur.com/NCNSDM9.png я про эти лимиты
Dan
а лимиты точно позволяют?
конечно, через гуй пахало ведь
Anna
в git из Ansible пушить этим модулем? https://pypi.org/project/git-acp-ansible/
Ivan
А yum/apt умеет делать проверку на минимальную версию пакета?
Ivan
Никто такое не решал?
Ivan
А подробнее задачу распишите.
Поставить пакет с версией не ниже X.Y
Ivan
Или скорее убедиться, что стоит пакет с версией не ниже, если нет -- поставить
Vitaly
Так он всегда ставит последнюю доступную из репы
Vitaly
Если надо обновить, можно update поставить параметр
Ivan
Да, ставит. Но я не хочу того, что мейнтейнеры посчитают сьабилтным, но и сам пинить тоже не хочу
Ivan
Если разраб хочет обновить -- пусть, но не ниже моей указанной
Vitaly
https://docs.ansible.com/ansible/latest/modules/yum_module.html
Vitaly
- name: install one specific version of Apache yum: name: httpd-2.2.29-1.4.amzn1 state: present
Ivan
Это будет пин с моей стороны.
Vitaly
Ниже чем заинсталенно он и так не будет трогать
Ivan
Хочешь сказать, если даунгрейд не писать, будет что хочу?
Ivan
Если на хосте версия 2, у меня present 1, он не зафейлится?
Ivan
Щас чекну
Vitaly
Нет, он сам не откатит версию ниже чем есть
Vitaly
100%
Sander
Всем првиет,
Sander
у меня вопрос - как в ansible, выполнить последовательность действий: 1. приконнектится под user-ом например test1, 2. сменить пользователя на root, 3. и поменять пароль root - на что-то другое.
Sander
пробовал по всякому, не получается.
Barthez
пробовал по всякому, не получается.
Дык вроде как выстроите последовательность так и будет
Sander
я плейбуки построил - не могу только это сделать!
Barthez
я плейбуки построил - не могу только это сделать!
Так это вроде в одну таску сделать можно и ее уже включить в плейбук
Sander
и как же это сделать?
Barthez
Смотрите в сторону модулей работы с пользователями
Barthez
Есть модуль become
Sander
сорри я уже долго очень сижу с этим, перепробовал все к сожалению
Barthez
Примеры
Sander
я наверное не читаю документацию
Barthez
Sander
:) может стоит начать?
-_- серьезно? я с сарказмом написал
Sander
sudo passwd
наверное я и это не пробовал ))
Barthez
Become (Privilege Escalation) — Ansible Documentation https://docs.ansible.com/ansible/2.3/become.html
Кирилл
наверное я и это не пробовал ))
разреши уточнить, а что ты пробовал, можешь перечислить?
Sander
окей допустим приконтектился к root - а как пароль root пользователя поменять? тоже перепробовал все варианты, и passwd нормально не работал ни через shell, ни через готовую обертку, только ручками все через терминал срабатывало.
Sander
Модуль юзер
пробовал
Sander
я пробовал запустить passwd через shell, user, pexpect
Кирилл
промахнулся )
Отделение Bereke Bank
промахнулся )
Там был ужасный пример. Его удалили)
Кирилл
да я и его и написал ) а потом понял, что фигню творю
Кирилл
вот, работает - name: Change root password hosts: w2 become: yes vars: root_password: "new_root_password" root_password_salt: afEMnMOBZgYNhoqA tasks: - name: Change root password user: name: root password: "{{ root_password | password_hash(salt=root_password_salt) }}"
Sander
прошу прощение, еще проблема приконтектится по ssh через ansible, без ansible напрямую через ssh коннектится без проблем - но через ansible, никак не могу ... раньше помню тоже мучался, но конфиги те же.
Sander
<120.181.47.183> ESTABLISH SSH CONNECTION FOR USER: alex <120.181.47.183> SSH: EXEC sshpass -d44 ssh -vvv -o ForwardAgent=yes -o ControlPersist=3s -o ServerAliveInterval=900 -o ServerAliveCountMax=3 -o StrictHostKeyChecking=no -o Port=2568 -o 'IdentityFile="/Users/alex/.ssh/test/test/test"' -o 'User="alex"' -o ConnectTimeout=60 -o ControlPath=/Users/alex/.ansible/cp/c150e6d16d 120.181.47.183 '/bin/sh -c '"'"'echo ~alex && sleep 0'"'"''
Sander
может это даст хоть какую-то информацию
Sander
ssh -i ~/.ssh/test/test/test alex@120.181.47.183 -p 2568
Кирилл
по идее схема следующая в vars или hosts описывается ansible_user под которым будет выполнятся вход и работа на сервере
Sander
[all:vars] inventory_environment=production ansible_connection=ssh ansible_ssh_user=alex ansible_ssh_port={{ ssh_server_port }} ansible_ssh_private_key_file={{ ssh_private_file }} ansible_ssh_pass={{ ssh_passphrase }} ansible_become_pass={{ server_root_password }} ansible_python_interpreter=/usr/bin/python3
Кирилл
ansible_ssh_user=sander
Кирилл
sander пользователь должен существовать на удаленном сервере
Sander
есть он
Sander
ssh -i ~/.ssh/test/test/test alex@120.181.47.183 -p 2568
вот я показал пример команды - и по ней заходит!
Кирилл
у него в .ssh/authorized_keys должен быть прописан публчиный ключ
Sander
все есть
Barthez
Либо в таске vars пропиши
Sander
и в vars пробовал
Кирилл
alex@120.181.47.183 - ну какой тут sander ?
Sander
при чем тут sander вообще? везде используется "alex"
Кирилл
при чем тут sander вообще? везде используется "alex"
ранее в приведенном листинге был sander )
Sander
да я переименовал - чтоб понятней было
Sander
пробовал и все переменные в vars прописывать в плейбке
Sander
мало ли что, прям харкодом - чтоб мало ли что не подсасывается, но оно все ок подсасывается из конфигов