Size: a a a

2021 March 24

A

Alexandr in Ansible
Андрей Балашов
Пожалуйста.
Lineinfile штука нужная, но не для твоей задачи :)
да с template все оказалось намного легче в моем случае
источник

NT

Nazar Tertyshnyi in Ansible
Пока описывал ситуацию и формулировал вопрос - придумал решение. Аура чата, что ли.
источник

TG

Timur Gadiev in Ansible
источник

D

Dok in Ansible
Приветы!

Глупый вопрос. Хочу вычленить ip по которому происходит непосредственно ssh-подключение с целевым хостом.
Я его вычленяю через ansible -m setup в переменной SSH_CONNECTION,
но стоит вычленять его при выполнении плейбуки, так этого параметра и нет.

Причём вызываю дебаг hostvars и ansible_facts целиком после gather_facts: true и модуля setup, так SSH_CONNECTION там и близко нет.

Как быть?
источник

VZ

Vladimir Zhurkin in Ansible
Alexey Nakhimov
Привет!
Не подскажите, как решить вот такой кейс с Ансиблом:

1. Добавляем текущего юзера Ансибл в группу docker:
- name: Add current user to docker group
 become: yes
 ansible.builtin.user:
   name: "{{ ansible_user }}"
   groups: docker
   append: yes

2. Удостоверяемся, что сервис docker работает:
- name: Start service docker, if not started
 become: yes
 ansible.builtin.service:
   name: docker
   state: started

3. А теперь, если мы попробуем обратиться к демону docker, например, вот так:
- name: test
 raw: docker ps

то мы поймаем ошибку Permission denied!

4. Проверим, в каких группах у нас находится пользователь:
- name: View user groups
 raw: groups

и увидим кучу групп, но нет группы docker!

Если зайти по SSH под именем этого пользователя, то все без проблем - пользователь находится в группе docker, обращения к демону - без проблем. Но Ансибл упорно не хочет этого видеть!

Пробовал после добавления пользователя в группу docker воткнуть такую таску:
- name: Reset ssh connection
 meta: reset_connection

но это не помогло….

Можно хоть 100 раз запускать плейбук - результат одинаковый.
Перезагружаем виртуалку - и все отлично! Теперь Ансибл показывает, что пользователь есть в группе docker и без проблем общается с демоном.

Можно ли это как-то решить без перезагрузки виртуалки? А то такая себе автоматизация получается….. (((
Можно ли это как-то решить без перезагрузки виртуалки? А то такая себе автоматизация получается….. (((
- да Сделать две таски
источник

AN

Alexey Nakhimov in Ansible
Vladimir Zhurkin
Можно ли это как-то решить без перезагрузки виртуалки? А то такая себе автоматизация получается….. (((
- да Сделать две таски
два плейбука?
источник

TG

Timur Gadiev in Ansible
Dok
Приветы!

Глупый вопрос. Хочу вычленить ip по которому происходит непосредственно ssh-подключение с целевым хостом.
Я его вычленяю через ansible -m setup в переменной SSH_CONNECTION,
но стоит вычленять его при выполнении плейбуки, так этого параметра и нет.

Причём вызываю дебаг hostvars и ansible_facts целиком после gather_facts: true и модуля setup, так SSH_CONNECTION там и близко нет.

Как быть?
Интересно, а как вы подключаетесь к хосту, не зная его ip?
источник

VZ

Vladimir Zhurkin in Ansible
Alexey Nakhimov
два плейбука?
ну  я не знаю , что там у вас Но да Там не перезагрузку нажна, а логаут Учите как работает система
источник

YZ

Yerzhan Zhiyentayev in Ansible
Dok
Приветы!

Глупый вопрос. Хочу вычленить ip по которому происходит непосредственно ssh-подключение с целевым хостом.
Я его вычленяю через ansible -m setup в переменной SSH_CONNECTION,
но стоит вычленять его при выполнении плейбуки, так этого параметра и нет.

Причём вызываю дебаг hostvars и ansible_facts целиком после gather_facts: true и модуля setup, так SSH_CONNECTION там и близко нет.

Как быть?
ansible_host переменная вроде
источник

D

Dok in Ansible
Timur Gadiev
Интересно, а как вы подключаетесь к хосту, не зная его ip?
Я знаю его хостнейм, а его значения не знаю
источник

TG

Timur Gadiev in Ansible
Dok
Я знаю его хостнейм, а его значения не знаю
nslookup
источник

D

Dok in Ansible
Timur Gadiev
nslookup
Он прописан в /etc/hosts
источник

TG

Timur Gadiev in Ansible
Dok
Он прописан в /etc/hosts
Пофиг
источник

D

Dok in Ansible
Это криво
источник

TG

Timur Gadiev in Ansible
Вы хотите странного
источник

TG

Timur Gadiev in Ansible
Подключаться к хосту по ssh, не зная его ip, для того, чтобы узнать его ip...
источник

TG

Timur Gadiev in Ansible
Это что-то с чем-то
источник

D

Dok in Ansible
Yerzhan Zhiyentayev
ansible_host переменная вроде
Там значение из инвенторки, а не ssh-адрес
источник

TG

Timur Gadiev in Ansible
Dok
Там значение из инвенторки, а не ssh-адрес
nslookup запустите и не лохматьте бабушку
источник

NT

Nazar Tertyshnyi in Ansible
Хотя. Посмотрите, пожалуйста, на моё решение. Может подскажите как лучше делать?

"Старшие" решили, что надо бы за безопасность взяться. Ну решили и решили. Выдвинули мне задачу.

Имеется:
- Пачка серверов (количество может изменяться. Убираться, добавляться)
- HashiCorp Vault

Что надо:
- Отключать логин рута
- Изменить порт SSH
- Создать sudo пользователя, под которым будут выполняться дальнейшие действия

Что думаю:
Получаю креды серверов с vault, в которых есть что-то вроде 'root_password', 'super_password', 'super_username'. Дальше (пока не знаю как, но что-то придумаю), проверяю, есть ли super креды. Если нету - создать пользователя и внести в vault.
Ну, а дальше уже делать свою магию

Это лишь 'первая мысль'. Если есть советы / подзатыльники / предложения / критика - буду очень рад, если поделитесь
источник