Size: a a a

2021 February 10

MM

Maksim Makhalov in Ansible
Xrym Xrums
День добрый. Такая проблема возникла. Пишу инвентарь, в нем указан сервак к которому можно подключиться только через определенный порт. То есть выглядит всё классически:
ansible_host=192.168.1.1
ansible_port=1234
ansible_user=user
И есть разное оборудование, попасть на которое можно только через этот самый сервак, с айпишками аля 10.0.0.1 и далее. И вот как это указать в инвентаре, что бы можно было в любой момент пингануть к примеру это самое оборудование через инвентарь?
Нашёл пока такое для инвентаря:
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q user@gateway.example.com"'
И вот теперь надо понять - что и куда тут подставить. Понято что заместо "user@gateway.example.com" будет прописано "user@192.168.1.1", а вот куда тут подставить нужный мне порт?
Или я вообще куда-то не туда тыкаюсь?
Фишка ещё в том, что у меня всё должно быть в одном файле, потому прописать разное в других файлах, типа ссш/конфиг и подобное я не смог.
источник

YZ

Yerzhan Zhiyentayev in Ansible
Xrym Xrums
День добрый. Такая проблема возникла. Пишу инвентарь, в нем указан сервак к которому можно подключиться только через определенный порт. То есть выглядит всё классически:
ansible_host=192.168.1.1
ansible_port=1234
ansible_user=user
И есть разное оборудование, попасть на которое можно только через этот самый сервак, с айпишками аля 10.0.0.1 и далее. И вот как это указать в инвентаре, что бы можно было в любой момент пингануть к примеру это самое оборудование через инвентарь?
Нашёл пока такое для инвентаря:
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q user@gateway.example.com"'
И вот теперь надо понять - что и куда тут подставить. Понято что заместо "user@gateway.example.com" будет прописано "user@192.168.1.1", а вот куда тут подставить нужный мне порт?
Или я вообще куда-то не туда тыкаюсь?
Фишка ещё в том, что у меня всё должно быть в одном файле, потому прописать разное в других файлах, типа ссш/конфиг и подобное я не смог.
ssh -W %h:%p -q user@gateway.example.com -p 1234
источник

XX

Xrym Xrums in Ansible
не очень подходит. У меня в файле инвентаря должно быть указано всё.
источник

XX

Xrym Xrums in Ansible
Yerzhan Zhiyentayev
ssh -W %h:%p -q user@gateway.example.com -p 1234
спасибо большое! Теперь хоть получаю в ответ "доступ запрещён". Осталось разобраться как сделать так, что бы при входе он не спрашивал пароля этого сервака, а сразу заходил на оборудование. А то сперва спрашивает пароль от user@gateway.example.com после чего пишет что доступ к оборудованию запрещён т.к. нет пароля. А если пароль от оборудования добавить в инвентарь (я знаю что так нельзя, но мне надо посмотреть что будет во всех случаях), то мне сразу пишет что "Неправильный пароль". Ибо Ансибл при подключении к user@gateway.example.com вкидывает пароль от оборудования к нему, а не пароль от сервака...
источник

TG

Timur Gadiev in Ansible
Выкиньте нафиг пароли и юзайте нормальные ключи
источник

TG

Timur Gadiev in Ansible
Ключи прокиньте в сеанс через ssh-agent
источник

TG

Timur Gadiev in Ansible
И будет вам щастье
источник

VD

Vld DPDoc in Ansible
Прошу помощи опять, из предложенных вариков не все идет. Вывожу дистр. и версию ОС и версию пакета, кот надо обновить. Через latest не идет. Пакеты все в зависимости от версии лежат на локалке в files. Никак не могу понять как скопировать нужный пакет в зависимости от дистр и версии ОС. Еще раз спасибо.
источник

PG

Pavel Gassan in Ansible
Vld DPDoc
Прошу помощи опять, из предложенных вариков не все идет. Вывожу дистр. и версию ОС и версию пакета, кот надо обновить. Через latest не идет. Пакеты все в зависимости от версии лежат на локалке в files. Никак не могу понять как скопировать нужный пакет в зависимости от дистр и версии ОС. Еще раз спасибо.
давай сначала - какая у тебя структура в files?
источник

VD

Vld DPDoc in Ansible
Pavel Gassan
давай сначала - какая у тебя структура в files?
Там только пакеты для установки и все.
источник

PG

Pavel Gassan in Ansible
имена у пакетов есть?
источник

VD

Vld DPDoc in Ansible
Pavel Gassan
имена у пакетов есть?
sudo-1.9.5* = 9шт в зависимости от дистр и версии ОС.
источник

PG

Pavel Gassan in Ansible
sudo-1.9.5* что за звездочкой?
источник

VD

Vld DPDoc in Ansible
sudo-1.9.5-3_deb8_amd64.deb  как то так
источник

PG

Pavel Gassan in Ansible
серьезно?)) и как ты думаешь сопоставить версию пакета и версию ОС?
источник

VD

Vld DPDoc in Ansible
Pavel Gassan
серьезно?)) и как ты думаешь сопоставить версию пакета и версию ОС?
Вот и репу чешу. И пока фол. Как то через переменные. Много условий.
источник

PG

Pavel Gassan in Ansible
назови их как-то соответствующе дистрам, инфо до дистрам возьми из фактов, и дай имена пакетам типа
sudo-Ubuntu-20.04.deb
в таске используй sudo-{{ansible_distribution}}-{{ansible_distribution_version}}.deb
источник

VD

Vld DPDoc in Ansible
Pavel Gassan
назови их как-то соответствующе дистрам, инфо до дистрам возьми из фактов, и дай имена пакетам типа
sudo-Ubuntu-20.04.deb
в таске используй sudo-{{ansible_distribution}}-{{ansible_distribution_version}}.deb
В каком файле их назвать?  В vars? Как сопоставить эту созданную переменную с дистр и версией?
источник

PG

Pavel Gassan in Ansible
называешь файлы пакетов в директории files соответствующе дистрибутивам, на которые они должны быть установлены
в таске наверное первым делом копируешь файл, потом устанавливаешь
источник

E

Elenhil in Ansible
Vld DPDoc
Вот и репу чешу. И пока фол. Как то через переменные. Много условий.
два варианта. Первый - сунуть имя дистра в имя файла из звать не package_version.deb, a package_{{ansible_distribution}}.deb
источник