Comments 16
Я примерно такое года 3 назад писал, и без захардкоженых путей вроде dest: /etc/php/7.3/apache2
Версия php выносится в переменную {{ php_version }} и ставится любая нужная примерно как — php{{ php_version }}-curl и файлы также раскладываются.
mysql я какой-то ролью с гэлакси настраивал — базы создавал с пользователями и дампы раскатывал. Не помню чем мне встроенный модуль не угодил.
Учитывая то, что вы меня на работу лет 5 назад не взяли из-за недостатка квалификации, средний уровень статей по ansible немного… э-э-э-… удручает.
- name: Copy domain_name config
copy:
src: nginx/domain_name.conf
dest: /etc/nginx/sites-available/domain_name.conf
Файл с переменными /var/ansible/LEMP/vars/main.yml:
DOMAIN_NAME: domain_name
Т.е. не смотря на наличие файла с переменными, в которых указан domain_name, во всех конфигах вы домены прибиваете гвоздями и копируете? Т.е. на следующий проект надо вносить изменения в 4 файла?... не надо так.
Лучше сразу объяснить про temlpates.
А еще не понятно, почему нет разбиения по ролям, хотя LEMP как бы намекает на 4 независимых роли 8)
P.s. после ребута сервер превратится в тыкву т.к. у сервисов нет enabled: yes
PHP 7.3, использование with_items, неиспользование FQCN… Такое чувство, будто статья валялась в песочнице несколько лет и её выпустили только сейчас
Использование files вместо templates тоже смущает, уж хотя бы domain_name стоит читать из переменной, чтобы можно было как минимум разделить staging и production, наверное?
Зачем with_items в apt когда можно сразу передавать список?
Мне кажется, что для новичков это полезный материал, помогает наглядно понять основные возможности ansible.
В качестве следующего шага, мне кажется, что стоит добавить переменные и templates, чтобы показать возможности параметризации в ansible.
Также возможно под эту задачу (или под компоненты) уже есть готовая роль, которую можно переиспользовать.
Было бы интересно увидеть продолжение(чужие варианты реализации) того же плэйбука, но когда, например, нужно забиндить виртуалхост только на внешнем IP. Ну и другие варианты использования "фактов".
Используете ли вы UI (AWX или Ansible Semaphore) для запуска Ansible?
Про Ansible для новичков: Практика (часть II)