Alex
Dan
это уже оффтопик
ну тогда буду рад в личку, если не лень. Мне как раз надо наладить AWS+GCP+Azure
Отделение Bereke Bank
Alex
два года назад когда столкнулся то в ансибле даже модулей не было нормальных для работы с GCP. И я говорю про базовые вещи аля GCE/LB иn/&g
Потом они затеяли глобальную миграцию на новый тип модулей gcp_. И когда я их пробовал полгода с пустя они были очень очень сырыми, и по сути не пригодными для продакшена
Alex
посмотрел даже свою переписку с ребятами из гугла
Alex
возможно сейчас прямо все сильно поменялось, не берусь утверждать, так как последние два года использую tf и особых проблем нет
Alex
Alex
https://i.imgur.com/NCNSDM9.png
я про эти лимиты
Anna
в git из Ansible пушить этим модулем? https://pypi.org/project/git-acp-ansible/
Ivan
А yum/apt умеет делать проверку на минимальную версию пакета?
Ivan
Никто такое не решал?
Vitaly
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
пробовал по всякому, не получается.
Sander
я плейбуки построил - не могу только это сделать!
Sander
и как же это сделать?
Barthez
Смотрите в сторону модулей работы с пользователями
Barthez
Есть модуль become
Sander
сорри я уже долго очень сижу с этим, перепробовал все к сожалению
Barthez
Barthez
Примеры
Sander
я наверное не читаю документацию
Barthez
Кирилл
Barthez
Become (Privilege Escalation) — Ansible Documentation
https://docs.ansible.com/ansible/2.3/become.html
Sander
окей допустим приконтектился к root - а как пароль root пользователя поменять? тоже перепробовал все варианты,
и passwd нормально не работал ни через shell, ни через готовую обертку,
только ручками все через терминал срабатывало.
Barthez
Отделение Bereke Bank
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/authorized_keys должен быть прописан публчиный ключ
Sander
все есть
Barthez
Либо в таске vars пропиши
Sander
и в vars пробовал
Кирилл
alex@120.181.47.183 - ну какой тут sander ?
Sander
при чем тут sander вообще? везде используется "alex"
Sander
Кирилл
Sander
да я переименовал - чтоб понятней было
Sander
пробовал и все переменные в vars прописывать в плейбке
Sander
мало ли что, прям харкодом - чтоб мало ли что не подсасывается, но оно все ок подсасывается из конфигов