Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- # создание дампа баз данных и перенос их на новый сервер
- # после переноса баз данных, переносим контент проектов
- - hosts: old_server
- tasks:
- - name: create dump database
- mysql_db: name={{ item }} login_user=root login_password=sercret_password state=dump target=/home/{{ item }}.sql
- with_items:
- - test1
- - test2
- - test3
- - name: copy database to new server
- raw: rsync -azvh /home/{{ item }}.sql root@192.168.55.63:/home/{{ item }}.sql;
- with_items:
- - test1
- - test2
- - test3
- - name: copy content to new server
- raw: rsync -azvh /var/www/{{ item }} root@192.168.55.63:/var/www/{{ item }};
- with_items:
- - test1.com
- - test2.com
- - test3.com
- - hosts: new_server
- vars:
- packages:
- - apache2
- - php7.0
- - php7.0-bcmath
- - php7.0-cli
- - php7.0-common
- - php7.0-dev
- - php7.0-gd
- - php7.0-intl
- - php7.0-mbstring
- - php7.0-mcrypt
- - php7.0-mysql
- - php7.0-opcache
- - php7.0-json
- - php7.0-soap
- - fail2ban
- - clamav
- tasks:
- #блок отвечающий за обновление системы и установку пакетов
- - name: update
- apt: update_cache=yes upgrade=yes
- - name: install packages
- apt: pkg={{ packages }} state=installed update_cache=yes
- - name: add repo for certbot
- apt_repository:
- repo: ppa:certbot/certbot
- - name: update
- apt: update_cache=yes upgrade=yes
- # нужно заменить в случае apache2 как основного web-сервера
- - name: install certbot
- apt: pkg=python-certbot-nginx state=installed update_cache=yes
- # apache2 и nginx конфликтуют если находяться на одном порту (80), для этого вначале ставим apache2
- # далее правим его конфиг портов и рестартуем
- # после этого спокнойно ставим nginx и не ловим ошибок установки
- - name: modify ports.conf of apache2
- shell:
- sed -i 's/^Listen 80$/Listen 8080/g' ports.conf;
- sed -i 's/Listen 443$/Listen 8443/g' ports.conf
- - name: reload apache2 for normal work with nginx
- service: name=apache2 enabled=yes state=restarted
- - name: install nginx
- apt: pkg=nginx state=installed update_cache=yes
- # копирование эталонных конфигов на удаленный сервер
- # и последующая переделка их индивидуально под каждый проект
- - name: copy config file
- copy: src=/home/pavel/Desktop/etalon_nginx dest=/etc/nginx/sites-available/etalon_nginx
- - name: copy config file
- copy: src=/home/pavel/Desktop/etalon_apache2 dest=/etc/apache2/sites-available/etalon_apache2.conf
- - name: configure nginx
- shell:
- cd /etc/nginx/sites-available/;
- cat etalon_nginx | sed 's/server_name/server_name {{ item }} www.{{ item }};/g' > {{ item }}.conf;
- sed -i '/root/ s/$/{{ item }};/g' {{ item }}.conf
- with_items:
- - test1.com
- - test2.com
- - test3.com
- - name: configure apache2
- shell:
- cd /etc/apache2/sites-available/;
- cat etalon_apache2.conf | sed 's/ServerName/ServerName {{ item }}/g' > {{ item }}.conf;
- sed -i '/DocumentRoot/ s/$/{{ item }}/g' {{ item }}.conf;
- sed -i '/ServerAlias/ s/$/{{ item }}/g' {{ item }}.conf;
- sed -i 's/<Directory "\/var\/www\/">/<Directory "\/var\/www\/{{ item }}">/g' {{ item }}.conf
- with_items:
- - test1.com
- - test2.com
- - test3.com
- # создаем базы и пользователей и заливаем перенесенные дампы баз данных
- - name: create database
- mysql_db: name={{ item }} state=present login_user=root login_password=123456
- with_items:
- - test1
- - test2
- - test3
- - name: create database user
- mysql_user: name={{ item }} password=123456 priv='{{ item }}.*:ALL' login_user=root login_password=123456
- with_items:
- - test1
- - test2
- - test3
- - name: import database dump
- mysql_db: name={{ item }} state=import target=/home/{{ item }}.sql login_user=root login_password=123456
- with_items:
- - test1
- - test2
- - test3
- # создание символьных ссылок и перезапуск apache2 и nginx
- - name: symbolic links
- shell:
- ln -s /etc/nginx/sites-available/{{ item }}.conf /etc/nginx//sites-enabled/{{ item }}.conf;
- ln -s /etc/apache2/sites-available/{{ item }}.conf /etc/apache2/sites-enabled/{{ item }}.conf;
- with_items:
- - test1.com
- - test2.com
- - test3.com
- - name: reload nginx
- service: name=nginx enabled=yes state=restarted
- - name: reload apache2
- service: name=apache2 enabled=yes state=restarted
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement