Я работаю над проектом php.
У меня есть 2 сервера:
- gitlab server
- production server (apache2 + php + mysql)
Мои исходные файлы PHP хранятся и версии на моем сервере gitlab.
Я хочу автоматически развернуть файлы php на производственном сервере.
Вот что я сделал:
- Я создал пользователя «развертывателя» на производственном сервере.
- Я запустил ssh-keygen для этого пользователя.
- Я скопировал и вставил закрытый ключ ssh (/home/deployer/.ssh/id_rsa) в секретную переменную gitlab.
Вот выдержка из файла .gitlab-ci.yml:
deploy:
stage: deploy
when: manual
only:
- master
script:
- echo "${SSH_PRIVATE_KEY}" > id_rsa
- chmod go-rwx ./id_rsa
- rsync -hrvz --delete --exclude '.git*' --exclude id_rsa -e 'ssh -o StrictHostKeyChecking=no -i ./id_rsa' ./ deployer@productionservrer.com:/var/www/html
Все работает.
Моя проблема заключается в необходимости временно создать файл id_rsa для хранения закрытого ключа для rsync. Этот файл исключен из rsync, но я расстроен этим файлом. Если кто-то случайно удалит параметры rsync --exclude, мой файл id_rsa будет открыт на веб-сервере.
Так что мой вопрос: как мне работать без необходимости хранить закрытый ключ во временном файле.
Спасибо