Деплой конфигов на ...
 

Деплой конфигов на сервер

8 Записи
2 Пользователи
0 Reactions
1,209 Просмотры
(@wasice)
Записи: 12
Active Member
Создатель темы
 

Есть некий локальный сервис, который генерирует конфиги nginx. После этого конфиг нужно "залить" на сервер и далее выполнить reload чтобы изменения вступили в силу. И все бы просто, но руководство поставило жесткие требования по безопасности.

Аутентификация на сервер только по ключу, который должен иметь пароль.

А как и где мне указывать пароль от приватного ключа? Т.е. как я вижу - ключ должен быть добавлен в систему через ssh-add например, но тогда ни php ни Ansible не увидят этот ключ в своей сессии.

Подскажите, а как вообще решаются такие задачи? Ведь админы не руками же "разливают" конфиги.

Спасибо!

 
Размещено : 01.10.2020 14:20
Метки темы
(@zerox)
Записи: 926
Prominent Member Admin
 

@wasiceF А вы чем деплой делаете? Если не ошибаюсь, тот же gitlab или teamcity поддерживают пароли на ssh ключи.

 
Размещено : 01.10.2020 14:28
(@wasice)
Записи: 12
Active Member
Создатель темы
 

@zerox пока еще ничем, раньше деплой был настроен в php через ssh2_auth_pubkey_file и ssh2_scp_send
Все работало успешно до момента когда потребовалась парольная фраза. А у этих функий есть баг ( https://bugs.php.net/bug.php?id=58573 ) и нормально работать больше они не могут :(

Это сообщение было изменено 4 года назад 2 раз от Wasice
 
Размещено : 01.10.2020 14:34
(@zerox)
Записи: 926
Prominent Member Admin
 

@wasice тогда реализация будет зависеть от применяемого инструмента. Так то можно и башем деплоить, передавая парольную фразу прямо в команде через | tee

 
Размещено : 01.10.2020 15:54
(@wasice)
Записи: 12
Active Member
Создатель темы
 
От: @zerox

@wasice тогда реализация будет зависеть от применяемого инструмента. Так то можно и башем деплоить, передавая парольную фразу прямо в команде через | tee

А какой лучше использовать инструмент для этой цели с точки зрения администрирования?

Так то можно и башем деплоить, передавая парольную фразу прямо в команде через | tee

А как передать парольную фразу? Получается если какой-нибудь хакир проникнет на сервер, то рядом будут и ключи и тут же парольная фраза, не очень секурно. В идеале хочется добавить ключ в систему, ввести пароль от него и пусть софт далее подключается уже. И если даже ключ "уйдет" то без парольной фразы он не будет представлять никакой ценности! Ну как я это вижу, но как это делается в реальности - не знаю.

 

 
Размещено : 02.10.2020 08:47
(@zerox)
Записи: 926
Prominent Member Admin
 
От: @wasice

А какой лучше использовать инструмент для этой цели с точки зрения администрирования?

Самые известные и популярные это Jenkins, Gitlab, Teamcity. Я затрудняюсь сказать, какой лучше. Но, конечно, для такой задачи это все избыточно. 

Заливать конфиг можно не только по ssh. Можно и по rsync с авторизацией па паролю. А на сервере, куда идет конфиг, можно в firewall настроить ограничение на подключение по ip. Это не менее безопасно, но более гибко и удобно. 

 
Размещено : 02.10.2020 10:14
(@wasice)
Записи: 12
Active Member
Создатель темы
 
От: @zerox

Можно и по rsync с авторизацией па паролю.

Это все сводится к той же проблеме. И по ssh можно "заливать" по паролю.

От: @zerox

можно в firewall настроить ограничение на подключение по ip

А вот это уже дельный совет. Спасибо! По всей видимости так и поступим.

 
Размещено : 02.10.2020 15:27
(@zerox)
Записи: 926
Prominent Member Admin
 
От: @wasice

Это все сводится к той же проблеме. И по ssh можно "заливать" по паролю.

Это немного другое. По ssh могут подключаться разные люди и сервисы и с разных ip. Тогда надо их всех разрешать и каждому правило делать. А если просто заливать конфиг по rsync, то это отдельный порт, для которого можно сделать разрешение отдельное только для того сервера, с которого заливается конфиг. А ssh останется как и был, доступен всем, если это необходимо. Так что тут разница принципиальная. С точки зрения безопасности, ограничение по ip надежнее, чем доступ отовсюду, но с паролем на сертификат. 

 
Размещено : 02.10.2020 20:29
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar