В данной статье коротко рассмотрим два важных момента:
Создаем новый файл:
sudo nano 4_nginx_www.yml
Заполняем сам файл (есть комментарии внутри кода):
--- - name: Vars hosts: all become: yes vars: source_file: ./index.html destin_file: /var/www/html tasks: # 1. Скопировать файл с текущего сервера на удаленный в www - name: Copy files in www copy: src={{ source_file }} dest={{ destin_file }} # 3. Укажем якорь для запуска handlers, по name "restart nginx" п.2 notify: restart nginx # 2. Создадим handlers, будет делать рестарт, если выполним п.1 handlers: - name: restart nginx service: name=nginx state=restarted
Пояснения:
vars
copy
handlers
notify
Использование связки "handlers и notify", позволяет выполнять действие только в нужный момент.
Проверяем наш код:
ansible-playbook 4_nginx_www.yml PLAY [Vars] *********************************************************************************************** TASK [Gathering Facts] ************************************************************************************ ok: [debi] TASK [Copy files in www] ********************************************************************************** changed: [debi] RUNNING HANDLER [restart nginx] *************************************************************************** changed: [debi] PLAY RECAP ************************************************************************************************ debi : ok=3 changed=2 unreachable=0 failed=0
Проверяем наш файл на удаленном сервере:
# подключаемся по SSH ssh debiuser@192.168.0.6 Linux debi 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2 (2019-08-28) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Oct 15 23:10:20 2019 from 192.168.0.10 # Выводим содержимое файла через cat debiuser@debi:~$ cat < /var/www/html/index.html <!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Тестовая страница</title> </head> <body> <h1>Это тег заголовка первого уровня для содержимого страницы</h1> <p>Первый абзац</p> <p>Второй абзац</p> <p>Третий абзац и т. д.</p> </body> </html> debiuser@debi:~$
Источник: http://linuxsql.ru