diff --git a/apache.yml b/apache.yml new file mode 100644 index 0000000..f1306e3 --- /dev/null +++ b/apache.yml @@ -0,0 +1,6 @@ +--- +- name: install apache via ansible playbook + hosts: cibles + + roles: + - tco.apache_abrd4 \ No newline at end of file diff --git a/host_vars/a1.formation.opendoor.fr b/host_vars/a1.formation.opendoor.fr new file mode 100644 index 0000000..897c58e --- /dev/null +++ b/host_vars/a1.formation.opendoor.fr @@ -0,0 +1,15 @@ +apache_vhosts: + - servername: vh1 + serveralias: + - sa1 + - sa2 + access_log: /var/log/vh1_access + error_log: /var/log/vh1_error + documentroot: /srv/vh1/www + - servername: vh2 + serveralias: + - sa2 + - sa2 + access_log: /var/log/vh2_access + error_log: /var/log/vh2_error + documentroot: /srv/vh2/www \ No newline at end of file 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..88aa598 --- /dev/null +++ b/tco.apache_abrd4/README.md @@ -0,0 +1,41 @@ +Role Name +========= + +Install apache, + +Requirements +------------ + +None + +Role Variables +-------------- + +apache_server_name: no default +apache_document_root: no default + +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_abrd4 + +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..1156dfb --- /dev/null +++ b/tco.apache_abrd4/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for tco.apache_abrd4 diff --git a/tco.apache_abrd4/handlers/main.yml b/tco.apache_abrd4/handlers/main.yml new file mode 100644 index 0000000..23e1aa2 --- /dev/null +++ b/tco.apache_abrd4/handlers/main.yml @@ -0,0 +1,6 @@ +--- +# handlers file for tco.apache_abrd4 + - 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..2d1e588 --- /dev/null +++ b/tco.apache_abrd4/tasks/main.yml @@ -0,0 +1,68 @@ +--- +# tasks file for tco.apache_abrd4 + - name: import OS variables + ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" + + - name: install apache + ansible.builtin.package: + name: "{{ apache_package_name }}" + state: present + + - name: conf httpd + ansible.builtin.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 + ansible.builtin.service: + name: "{{ apache_service_name }}" + enabled: yes + state: restarted + + - name: setup firewall + block: + - name: install firewalld packages + ansible.builtin.dnf: + name: + - python3-firewall + - firewalld + state: present + + - name: enable firewalld service + ansible.builtin.service: + name: firewalld + enabled: true + state: started + + - name: open firewall port + ansible.posix.firewalld: + service: "{{ item }}" + permanent: yes + immediate: yes + state: enabled + loop: + - http + - https + ignore_errors: true + when: ansible_os_family == 'RedHat' + + - name: create documentroot + file: + name: "{{ item.document_root }}" + state: directory + loop: "{{ apache_vhosts }}" + + + - name: copy index file + ansible.builtin.template: + src: index.txt + dest: "{{ item.document_root }}/index.html" + mode: 0644 + loop: "{{ apache_vhosts }} + 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/tco.apache_abrd4/templates/vhost.conf b/tco.apache_abrd4/templates/vhost.conf new file mode 100644 index 0000000..30de532 --- /dev/null +++ b/tco.apache_abrd4/templates/vhost.conf @@ -0,0 +1,27 @@ +{% for vhost in apache_vhosts %} + + ServerName {{ vhost.server_name }} + {% for alias in vhost.server_alias %} + ServerAlias {{ alias }} + {% endfor %} + ServerAlias {{ inventory_hostname }} + DocumentRoot {{ vhost.document_root }} + CustomLog {{ apache_log_dir }}/{{ vhost.server_name }}_access.log combined + ErrorLog {{ apache_log_dir }}/{{ vhost.server_name }}_error.log + + Options none + Allowoverride none + Require all denied + + + + + 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..71cf0ee --- /dev/null +++ b/tco.apache_abrd4/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - tco.apache_abrd4 diff --git a/tco.apache_abrd4/vars/debian.yml b/tco.apache_abrd4/vars/debian.yml new file mode 100644 index 0000000..7f651c3 --- /dev/null +++ b/tco.apache_abrd4/vars/debian.yml @@ -0,0 +1,6 @@ +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 diff --git a/tco.apache_abrd4/vars/main.yml b/tco.apache_abrd4/vars/main.yml new file mode 100644 index 0000000..df242cd --- /dev/null +++ b/tco.apache_abrd4/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for tco.apache_abrd4 diff --git a/tco.apache_abrd4/vars/redhat.yml b/tco.apache_abrd4/vars/redhat.yml new file mode 100644 index 0000000..a4dfb4e --- /dev/null +++ b/tco.apache_abrd4/vars/redhat.yml @@ -0,0 +1,6 @@ +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