Обновление кода производится путем запуска следующего скрипта:
$ ssh root@onix-systems.com update-production
$ ssh root@onix-systems.com $ cd /opt/projects/onix-systems.com/production-v2/sources/onix-2016/ $ git pull $ cd /opt/projects/onix-systems.com/production-v2/sources/onix-systems-2016-v2/ $ git pull $ cd /opt/projects/onix-systems.com/production-v2/ $ docker-compose build $ docker-compose up -d
Обновление происходит в автоматическом режиме, посредством Jenkins CI (https://jenkins.office.onix.ua). Раз в пять минут проверяются обновления репозиториев: фронтента и бекенда.
Билд процес описан в скрипте Jenkinsfile, который пулитя Jenkins-ом с репозитория при обновлении: https://bitbucket.org/onix-systems/onix-deploy/
Загрузить новые сертификаты в каталог /etc/nginx/ssl/certs/ на сервере onix-systems.com и выполнить
$ nginx -t $ service nginx restart
Сервер настраиватся путем запуска ansible плейбука, который находится в репозитории: onix-deploy
Действия:
$ ssh root@onix-systems.com $ cd /root/onix-deploy/ansible $ git pull # All possible environments will be configured $ ./x-all.setup.sh local
# For production only $ ./x-production.setup.sh local
# For staging only $ ./x-staging.setup.sh local
Все default настройки сохранены в репозитории. Измененные параметры находятся в каталоге на сервере /root/onix-deploy/ansible/secrets-production.yml и /root/onix-deploy/ansible/secrets-staging.yml
Сценарий включает настройку и запуск двух окружений: production и staging, с конфигурированием файлов для соответвующих виртуальных хостов в /etc/nginx/conf.d.
Тестирование сценария настройки сервера возможно в vagrant-окружении
$ cd ./onix-deploy $ vagrant up
PS. Необходимо вручную подготовить ключ для клонирования репозитория. После клонирования репозитория необходимо подготовить конфиги бекенда и фронтенда отдельно. Плейбук проверить наличие всех необходимых файлов, если что-то не будет найдено, то сценарий завершит работу.