diff --git a/Readme.md b/Readme.md index 6a5605e..68347e8 100644 --- a/Readme.md +++ b/Readme.md @@ -2,13 +2,6 @@ ## Prérequis: -Récupérer la solution de l'atelier apache_handlers : https://infra.opendoor.fr/git/tom/sib_12_handlers - -```bash -cd -git clone -b solution https://infra.opendoor.fr/git/tom/sib_12_handlers sib_conditions -cd sib_conditions -``` ## Atelier 1: Ajouter le support de php à la demande Rajouter une variable booleenne apache_use_php. @@ -23,7 +16,14 @@ Positionnée à "true", cette variable entraîne: -Prérequis: - * On peut se baser sur l'exercice précédent. -Validation: le playbook s'exécute correctement sur nos cibles. Suivant la valeur de apache_use_php, le service php-fpm est actif sur la cible \ No newline at end of file +### Remarques: + +Il a fallu définir une nouvelle variable *php_fpm_service* pour gérer la différene de nom de service entre CentOS et Debian + +Les variables ont été documentées dans le Readme. + + +### Validation + +Le playbook s'exécute correctement sur nos cibles. Suivant la valeur de apache_use_php, le service php-fpm est actif sur la cible \ No newline at end of file diff --git a/apache.yml b/apache.yml index 81cade7..1ccd5fc 100644 --- a/apache.yml +++ b/apache.yml @@ -1,71 +1,6 @@ --- - name: install apache via ansible playbook - hosts: centos - handlers: - - name: restart apache - service: - name: httpd - state: restarted + hosts: all - tasks: - - name: install apache - yum: - name: httpd - state: latest - - - name: conf httpd - template: - src: vhost.conf - dest: /etc/httpd/conf.d/vhost.conf - mode: 0640 - owner: root - group: apache - notify: restart apache - - - name: call handlers, if needed - ansible.builtin.meta: flush_handlers - - - name: activate apache - service: - name: httpd - enabled: yes - state: started - - - name: open firewall port - firewalld: - service: http - permanent: yes - immediate: yes - state: enabled - ignore_errors: yes - - - name: create documentroot - file: - name: /var/www/html/example.org - state: directory - - - name: create index file - copy: - src: index.txt - dest: /var/www/html/example.org/index.html - mode: 0644 - - - name: install php - block: - - name: php install - package: - name: php-fpm - state: present - - - name: php service - service: - name: php-fpm - state: started - enabled: true - - - name: php config - copy: - src: php-fpm.conf - dest: /etc/httpd/conf.d/ - notify: restart apache - when: apache_use_php| default( false ) + roles: + - tco.apache_abrd4 \ No newline at end of file diff --git a/hosts b/hosts deleted file mode 100644 index d8d238a..0000000 --- a/hosts +++ /dev/null @@ -1,2 +0,0 @@ -[centos] -plop1.formation.opendoor.fr \ No newline at end of file diff --git a/index.txt b/index.txt deleted file mode 100644 index 949801e..0000000 --- a/index.txt +++ /dev/null @@ -1 +0,0 @@ -Hello World diff --git a/tco.apache_abrd4/.travis.yml b/tco.apache_abrd4/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/tco.apache_abrd4/.travis.yml @@ -0,0 +1,29 @@ +--- +language: python +python: "2.7" + +# Use the new container infrastructure +sudo: false + +# Install ansible +addons: + apt: + packages: + - python-pip + +install: + # Install ansible + - pip install ansible + + # Check ansible version + - ansible --version + + # Create ansible.cfg with correct roles_path + - printf '[defaults]\nroles_path=../' >ansible.cfg + +script: + # Basic role syntax check + - ansible-playbook tests/test.yml -i tests/inventory --syntax-check + +notifications: + webhooks: https://galaxy.ansible.com/api/v1/notifications/ \ No newline at end of file diff --git a/tco.apache_abrd4/README.md b/tco.apache_abrd4/README.md new file mode 100644 index 0000000..024e175 --- /dev/null +++ b/tco.apache_abrd4/README.md @@ -0,0 +1,42 @@ +Role Name +========= + +Install apache, + +Requirements +------------ + +None + +Role Variables +-------------- + +apache_server_name: no default +apache_document_root: no default +apache_use_php: default false + +see also files in vars subdirectory + +Dependencies +------------ + +None + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - tco.apache_abrd3 + +License +------- + +BSD + +Author Information +------------------ + +Thomas C diff --git a/tco.apache_abrd4/defaults/main.yml b/tco.apache_abrd4/defaults/main.yml new file mode 100644 index 0000000..5dd97a6 --- /dev/null +++ b/tco.apache_abrd4/defaults/main.yml @@ -0,0 +1,3 @@ +--- +# defaults file for tco.apache_abrd3 +apache_use_php: false diff --git a/tco.apache_abrd4/handlers/main.yml b/tco.apache_abrd4/handlers/main.yml new file mode 100644 index 0000000..e379e4e --- /dev/null +++ b/tco.apache_abrd4/handlers/main.yml @@ -0,0 +1,6 @@ +--- +# handlers file for tco.apache_abrd3 + - name: restart apache + ansible.builtin.service: + name: "{{ apache_service_name }}" + state: restarted diff --git a/tco.apache_abrd4/meta/main.yml b/tco.apache_abrd4/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/tco.apache_abrd4/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/tco.apache_abrd4/tasks/main.yml b/tco.apache_abrd4/tasks/main.yml new file mode 100644 index 0000000..fc60d26 --- /dev/null +++ b/tco.apache_abrd4/tasks/main.yml @@ -0,0 +1,83 @@ +--- +# tasks file for tco.apache_abrd3 + - name: import OS variables + include_vars: "{{ ansible_distribution | lower }}.yml" + tags: always + + - name: install apache + ansible.builtin.package: + name: "{{ apache_package_name }}" + state: present + + - name: conf httpd + template: + src: vhost.conf + dest: "{{ apache_config_dir }}/vhost.conf" + mode: 0640 + owner: root + group: "{{ apache_group }}" + notify: restart apache + + - meta: flush_handlers + + - name: activate apache + service: + name: "{{ apache_service_name }}" + enabled: yes + state: restarted + + - name: setup firewall + block: + - name: install firewalld packages + yum: + name: + - python3-firewall + - firewalld + state: present + + - name: enable firewalld service + service: + name: firewalld + enabled: true + state: started + + - name: open firewall port + firewalld: + service: "{{ item }}" + permanent: yes + immediate: yes + state: enabled + loop: + - http + - https + ignore_errors: true + when: ansible_distribution == 'CentOS' + + - name: create documentroot + file: + name: "{{ apache_document_root }}{{ apache_server_name }}/" + state: directory + + - name: copy index file + template: + src: index.txt + dest: "{{ apache_document_root }}{{ apache_server_name }}/index.html" + mode: 0644 + + - name: configure php + tags: php + block: + - ansible.builtin.package: + name: php-fpm + state: present + + - ansible.builtin.service: + name: "{{ php_fpm_service }}" + state: started + enabled: true + + - ansible.builtin.template: + src: php-fpm.conf + dest: "{{ apache_config_dir }}/php-fpm.conf" + notify: restart apache + when: apache_use_php diff --git a/tco.apache_abrd4/templates/index.txt b/tco.apache_abrd4/templates/index.txt new file mode 100644 index 0000000..fda9779 --- /dev/null +++ b/tco.apache_abrd4/templates/index.txt @@ -0,0 +1 @@ +

hello World {{ apache_server_name }}

\ No newline at end of file diff --git a/php-fpm.conf b/tco.apache_abrd4/templates/php-fpm.conf similarity index 100% rename from php-fpm.conf rename to tco.apache_abrd4/templates/php-fpm.conf diff --git a/tco.apache_abrd4/templates/vhost.conf b/tco.apache_abrd4/templates/vhost.conf new file mode 100644 index 0000000..fcacf9e --- /dev/null +++ b/tco.apache_abrd4/templates/vhost.conf @@ -0,0 +1,24 @@ + + ServerName {{ apache_server_name }} + ServerAlias www.{{ apache_server_name }} + ServerAlias {{ inventory_hostname }} + DocumentRoot {{ apache_document_root }}{{ apache_server_name }} + CustomLog {{ apache_log_dir }}/{{ apache_server_name }}_access.log combined + ErrorLog {{ apache_log_dir }}/{{ apache_server_name }}_error.log + + Options none + Allowoverride none + Require all denied + + + + Require all granted + + + Options indexes + AuthName "stop" + AuthType Basic + AuthUserFile {{ apache_config_dir }}/passwd + require valid-user + + diff --git a/tco.apache_abrd4/tests/inventory b/tco.apache_abrd4/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tco.apache_abrd4/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tco.apache_abrd4/tests/test.yml b/tco.apache_abrd4/tests/test.yml new file mode 100644 index 0000000..f7e1e84 --- /dev/null +++ b/tco.apache_abrd4/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - tco.apache_abrd3 diff --git a/tco.apache_abrd4/vars/centos.yml b/tco.apache_abrd4/vars/centos.yml new file mode 100644 index 0000000..c8500ff --- /dev/null +++ b/tco.apache_abrd4/vars/centos.yml @@ -0,0 +1,8 @@ +#/home/formation/sib_10_premier_playbook/centos.yml +apache_package_name: httpd +apache_service_name: httpd +apache_log_dir: /var/log/httpd/ +apache_config_dir: /etc/httpd/conf.d/ +apache_group: apache +apache_user: apache +php_fpm_service: php-fpm diff --git a/tco.apache_abrd4/vars/debian.yml b/tco.apache_abrd4/vars/debian.yml new file mode 100644 index 0000000..add9331 --- /dev/null +++ b/tco.apache_abrd4/vars/debian.yml @@ -0,0 +1,8 @@ +#/home/formation/sib_10_premier_playbook/debian.yml +apache_package_name: apache2 +apache_service_name: apache2 +apache_log_dir: /var/log/apache2/ +apache_config_dir: /etc/apache2/sites-enabled/ +apache_group: www-data +apache_user: www-data +php_fpm_service: php7.3-fpm diff --git a/tco.apache_abrd4/vars/main.yml b/tco.apache_abrd4/vars/main.yml new file mode 100644 index 0000000..c150cef --- /dev/null +++ b/tco.apache_abrd4/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for tco.apache_abrd3 diff --git a/vhost.conf b/vhost.conf deleted file mode 100644 index cc30fba..0000000 --- a/vhost.conf +++ /dev/null @@ -1,16 +0,0 @@ - - ServerName example.org - ServerAlias www.example.org - DocumentRoot /var/www/html/example.org/ - CustomLog /var/log/httpd/example.org_access.log combined - ErrorLog /var/log/httpd/example.org_error.log - - Options none - Allowoverride none - Require all denied - - - - Require all granted - - \ No newline at end of file