В этой статье поставим "Nginx" + "PHP-FPM" используя playbook Ansible. В статье ранее мы уже ставили простенькую программу "MC". Теперь усложним задачу.
1. Установка Nginx
Всегда используйте первоисточник, в нашем случае, это оф.сайт Nginx с документацией, расположенный по адресу:
Есть два варианта установки: по молчанию (старее) и используя репозиторий разработчика Nginx (новее). Проделаем оба.
Установка по умолчанию выглядит примерно так:
sudo apt-get update sudo apt-get install nginx # Проверка установленной версии sudo nginx -v
Так как мы используем Ansible, то установка будет немного другой. Заходим в директорию где распологается каталог playbook и создаем под него файл:
cd /etc/ansible/playbooks sudo nano 1_nginx.yml
Внутри прописываем следующее:
--- - name: Install Nginx hosts: all become: yes tasks: - name: Install Nginx of Debian 10 apt: name=nginx update_cache=yes state=latest - name: Start Nginx and boot service: name=nginx state=started enabled=yes
Подробнее:
Запускаем:
ansible-playbook 1_nginx.yml PLAY [Install Nginx] ****************** TASK [Gathering Facts] *************** ok: [debi] TASK [Install Nginx of Debian 10] ******* changed: [debi] TASK [Start Nginx and boot] *********** changed: [debi] PLAY RECAP ************************ debi : ok=3 changed=2 unreachable=0 failed=0
Все установилось! При этом, версия встала: "nginx version: nginx/1.14.2".
2. Удаление Nginx
Немного изменяем код выше:
--- - name: Install Nginx hosts: all become: yes tasks: - name: Stop Nginx service: name=nginx state=stopped enabled=no - name: Del Nginx apt: name=nginx state=absent - name: Del Nginx-common apt: name=nginx-common state=absent
Что изменили:
3. Установка Nginx с официальным репозиторием
Процедура стандартной установки выглядит так:
Перед созданием playbook, разберем два важных момента. Первый: надо скачать файл ключа и активировать.
$ sudo wget https://nginx.org/keys/nginx_signing.key $ sudo apt-key add nginx_signing.key
Второе. Надо добавить данные с репозиториями:
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
Для этого будем использовать: "get_url", "apt_key" и "apt_repository" при формировании playbook. Все данные можно взять с оф. сайта docs.ansible.com, в разделе "Playbooks".
Начнем. Создадим новый файл и заполним его:
sudo nano 3_nginx.yml
Заполняем файл:
--- - name: Install Nginx + repositories hosts: all become: yes tasks: - name: download PGP-key get_url: url: http://nginx.org/keys/nginx_signing.key dest: /etc/nginx_signing.key - name: install PGP-key apt_key: file: /etc/nginx_signing.key state: present - name: Add Nginx Repo deb apt_repository: repo: deb https://nginx.org/packages/mainline/debian/ buster nginx - name: Add Nginx Repo deb-src apt_repository: repo: deb-src https://nginx.org/packages/mainline/debian/ buster nginx - name: Del Nginx-common apt: name=nginx-common state=absent - name: Install Nginx of Debian 10 apt: name=nginx update_cache=yes state=latest - name: Start Nginx and Enable it on the every boot service: name=nginx state=started enabled=yes
Разберем более подробно каждый блок:
get_url
apt_key
apt_repository:
Далее запускам:
ansible-playbook 3_nginx.yml PLAY [Install Nginx + repositories] *********** TASK [Gathering Facts] ******************** ok: [debi] TASK [download PGP-key] ***************** changed: [debi] TASK [install PGP-key] ********************* changed: [debi] TASK [Add Nginx Repo deb] ***************** changed: [debi] TASK [Add Nginx Repo deb-src] ************** changed: [debi] TASK [Del Nginx-common] ****************** changed: [debi] TASK [Install Nginx of Debian 10] ************ changed: [debi] TASK [Start Nginx and Enable it on the every boot] *** changed: [debi] PLAY RECAP ****************************** debi : ok=8 changed=7 unreachable=0 failed=0
Проверяем версию:
4. Установка PHP-FPM
Чтобы установить PHP-FPM, просто в код выше добавим несколько строк. Открываем файл:
sudo nano 3_nginx.yml
И в самый конец через пропуск строки, добавляем такой фрагмент:
# INSTALL PHP-FPM - name: Install PHP-FPM of Debian 10 apt: name=php-fpm update_cache=yes state=latest
Все, можно запускать!
Есть несколько моментов:
Всем спасибо, кто читал!
Источник: http://linuxsql.ru