commit 2baad0a3b971d4484413c948e704ca9fb3b4dd89 Author: William Date: Wed Dec 15 14:47:28 2021 +0100 Playbook d'installation pour un serveur web. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6892c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/hosts.ini diff --git a/README.md b/README.md new file mode 100644 index 0000000..2c448f3 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Playbook webserver + +This playbook installs webserver (Nginx, Mariadb, PHP) + +## Installation + +Copy init file and edit values + +```shell +cp hosts.example.ini hosts.ini +``` + +Then run playbook + +```shell +ansible-playbook -i hosts.ini playbook.yml +``` diff --git a/hosts.example.ini b/hosts.example.ini new file mode 100644 index 0000000..9fa050a --- /dev/null +++ b/hosts.example.ini @@ -0,0 +1,6 @@ +[web] +127.0.0.1 ansible_ssh_user=ubuntu + +[web:vars] +mysql_root_password='motdepasse' +mysql_old_root_password='motdepasse' diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..c361bdc --- /dev/null +++ b/playbook.yml @@ -0,0 +1,9 @@ +--- + +- hosts: web + become: true + + roles: + - mariadb + - nginx + - php diff --git a/roles/mariadb/tasks/main.yml b/roles/mariadb/tasks/main.yml new file mode 100644 index 0000000..5c09bac --- /dev/null +++ b/roles/mariadb/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: install + apt: + name: + - mariadb-server + - python-mysqldb # for mysql_db and mysql_user modules + state: present + update_cache: yes + +- name: ensure service is start + service: + name: mysql + state: started + enabled: yes + +- name: change root password + mysql_user: + name: root + password: '{{ mysql_root_password }}' + host: 'localhost' + login_user: root + login_password: '{{ mysql_old_root_password }}' diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml new file mode 100644 index 0000000..45d6749 --- /dev/null +++ b/roles/nginx/tasks/main.yml @@ -0,0 +1,7 @@ +--- +- name: install + apt: + name: + - nginx + state: present + update_cache: yes diff --git a/roles/php/defaults/main.yml b/roles/php/defaults/main.yml new file mode 100644 index 0000000..9937ac7 --- /dev/null +++ b/roles/php/defaults/main.yml @@ -0,0 +1,17 @@ +php_version: 8.0 + +php_packages: + - php{{ php_version }}-common + - php{{ php_version }}-zip + - php{{ php_version }}-pdo + - php{{ php_version }}-mbstring + - php{{ php_version }}-tokenizer + - php{{ php_version }}-xml + - php{{ php_version }}-opcache + - php{{ php_version }}-mysql + - php{{ php_version }}-imap + - php{{ php_version }}-curl + - php{{ php_version }}-memcached + - php{{ php_version }}-intl + - php{{ php_version }}-gd + - php{{ php_version }}-bcmath diff --git a/roles/php/tasks/main.yml b/roles/php/tasks/main.yml new file mode 100644 index 0000000..4b50050 --- /dev/null +++ b/roles/php/tasks/main.yml @@ -0,0 +1,27 @@ +--- +- name: download apt key + get_url: + url: https://packages.sury.org/php/apt.gpg + dest: /tmp/php.gpg + +- name: install apt key + apt_key: + file: /tmp/php.gpg + state: present + +- name: apt repository + apt_repository: + repo: deb https://packages.sury.org/php/ buster main + +- name: install + apt: + name: "php{{ php_version }}-fpm" + state: present + update_cache: yes + install_recommends: no + +- name: install packages + apt: + name: "{{ php_packages | list }}" + state: present + install_recommends: no