ПРОД - Добавление нового сайта#

1. Создаём самоподписанный сертификат#

На хосте c04-ansible:

  1. Скрипт для ПРОДа

  2. nginx — распространение сертификатов

2. Создаём нужные папки + распространяем статику#

Создаём папки /srv/sites/*/{logs,public_html} + распространяем oops.html, maintenance.html (если есть — то и другую статику).

На хосте c04-ansible:

  • добавляем новый сайт в список inv_nginx_srv_sites:

    vim inv/production/group_vars/<Группа_фронтов_nginx>.yml;
    
  • если есть oops.html, другой статический контент, то добавляем в roles/nginx_update_srv_sites/files/prod/sites/<fqdn_сайта>/public_html/;

  • выполняем плейбук:

    ansible-playbook -i inv/production playbook/maintenance/nginx/update_srv_sites.yml
    

3. Создаём и распространяем конфиг nginx для нового сайта#

На первом фронте nginx:

  • создаём .conf файл для нового сайта;

  • проверяем, что нет ошибок, и применяем1 конфигурацию для первого фронта:

    nginx -t
    nginx -s reload
    
  • коммитим изменения и пушим в репозиторий (от имени root):

    cd /etc/nginx
    git status
    git add conf.d/newsite.ru.conf
    git commit -m 'Add newsite.ru.conf' --author='Author Name <root@nginx-front-01>'
    git push
    

На хосте c04-ansible:

Выполняем плейбук для распространения и применения1 новой конфигурации для всех фронтов nginx:

ansible-playbook -i inv/production playbook/maintenance/nginx/git_pull_config_vdc04.yml

1(1,2)

Плейбук перезапустит nginx только на тех фронтах, где “увидит” изменения в конфигурации. Для первого фронта изменений не будет, т. к. мы их только что внесли. Соответственно, на нём важно не забыть применить новую конфигурацию вручную.