From 71a7ae9b309fb2933d1cf30ea75ff35e590494d3 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 12:18:49 +0100 Subject: [PATCH 01/10] Bucles --- training/bucles.yml | 18 ++++++++++++++++++ training/when.yml | 11 +++++++++++ 2 files changed, 29 insertions(+) create mode 100644 training/bucles.yml diff --git a/training/bucles.yml b/training/bucles.yml new file mode 100644 index 0000000..b043a21 --- /dev/null +++ b/training/bucles.yml @@ -0,0 +1,18 @@ +- name: Ejemplo de un bucle en Ansible + hosts: all + become: yes + tasks: + - name: Instalar el paquete 'curl' + apt: + name: curl + state: present + + - name: Crear múltiples usuarios con contraseñas + user: + name: "{{ item }}" + password: "{{ 'password' | password_hash('sha512') }}" + state: present + loop: + - usuarioA + - usuarioB + - usuarioC \ No newline at end of file diff --git a/training/when.yml b/training/when.yml index ad6ea06..51acfad 100644 --- a/training/when.yml +++ b/training/when.yml @@ -18,4 +18,15 @@ apt: name: nginx state: present + when: ip_address == ['192.168.11.40'] + + - name: Verificar la instalación de Nginx + command: nginx -v + register: nginx_version + when: ip_address == ['192.168.11.40'] + + - name: Desinstala nginx + apt: + name: nginx + state: absent when: ip_address == ['192.168.11.40'] \ No newline at end of file From e5a828fcc3bce407ef46ec2c133105388e72cca0 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 12:26:55 +0100 Subject: [PATCH 02/10] Added all --- training/loops.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/training/loops.yml b/training/loops.yml index 019d5db..1fc7e33 100644 --- a/training/loops.yml +++ b/training/loops.yml @@ -7,12 +7,12 @@ name: python3-passlib state: present - - name: Crear múltiples usuarios con contraseñas + - name: lista multiples usuarios user: - name: "{{ item }}" - password: "{{ 'password' | password_hash('sha512') }}" + name: "{{ item.name }}" + password: "{{ item.password }}" state: present with_items: - - user1 - - user2 - - user3 \ No newline at end of file + - { name: usuario1, password: "contrasena1" } + - { name: usuario2, password: "contrasena2" } + - { name: usuario3, password: "contrasena3" } \ No newline at end of file From cbe9bfefa49ae3422192e18e0eddd1ec25ddee7f Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 13:15:10 +0100 Subject: [PATCH 03/10] Added role nginx --- examples/015_roles/roles/nginx/tasks/main.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/examples/015_roles/roles/nginx/tasks/main.yml b/examples/015_roles/roles/nginx/tasks/main.yml index 620a0dc..15b552d 100644 --- a/examples/015_roles/roles/nginx/tasks/main.yml +++ b/examples/015_roles/roles/nginx/tasks/main.yml @@ -1,10 +1,5 @@ # tasks file for nginx --- -- name: install tools - apt: name={{item}} state=present update_cache=yes - with_items: - - python-httplib2 - - name: install nginx apt: name=nginx state=present update_cache=yes From b40939e399cf70f79aa589b8355d61258bdca75c Mon Sep 17 00:00:00 2001 From: vagrant Date: Tue, 18 Nov 2025 13:18:52 +0000 Subject: [PATCH 04/10] Added roles --- examples/roles/apache2/README.md | 38 +++++++++++++++++ examples/roles/apache2/defaults/main.yml | 3 ++ examples/roles/apache2/handlers/main.yml | 5 +++ examples/roles/apache2/meta/main.yml | 35 ++++++++++++++++ examples/roles/apache2/tasks/main.yml | 19 +++++++++ examples/roles/apache2/tests/inventory | 3 ++ examples/roles/apache2/tests/test.yml | 6 +++ examples/roles/apache2/vars/main.yml | 3 ++ examples/roles/demo_app/README.md | 38 +++++++++++++++++ examples/roles/demo_app/defaults/main.yml | 3 ++ .../roles/demo_app/files/demo/app/demo.py | 20 +++++++++ .../roles/demo_app/files/demo/app/demo.wsgi | 10 +++++ .../demo_app/files/demo/app/requirements.txt | 9 ++++ examples/roles/demo_app/files/demo/demo.conf | 11 +++++ examples/roles/demo_app/handlers/main.yml | 5 +++ examples/roles/demo_app/meta/main.yml | 35 ++++++++++++++++ examples/roles/demo_app/tasks/main.yml | 41 +++++++++++++++++++ examples/roles/demo_app/tests/inventory | 3 ++ examples/roles/demo_app/tests/test.yml | 6 +++ examples/roles/demo_app/vars/main.yml | 3 ++ examples/roles/hosts | 11 +++++ examples/roles/mysql/README.md | 38 +++++++++++++++++ examples/roles/mysql/defaults/main.yml | 3 ++ examples/roles/mysql/handlers/main.yml | 5 +++ examples/roles/mysql/meta/main.yml | 35 ++++++++++++++++ examples/roles/mysql/tasks/main.yml | 26 ++++++++++++ examples/roles/mysql/tests/inventory | 3 ++ examples/roles/mysql/tests/test.yml | 6 +++ examples/roles/mysql/vars/main.yml | 3 ++ examples/roles/nginx/README.md | 38 +++++++++++++++++ examples/roles/nginx/defaults/main.yml | 3 ++ examples/roles/nginx/handlers/main.yml | 5 +++ examples/roles/nginx/meta/main.yml | 35 ++++++++++++++++ examples/roles/nginx/tasks/main.yml | 20 +++++++++ examples/roles/nginx/templates/nginx.conf.j2 | 13 ++++++ examples/roles/nginx/tests/inventory | 3 ++ examples/roles/nginx/tests/test.yml | 6 +++ examples/roles/nginx/vars/main.yml | 3 ++ examples/roles/site.yml | 16 ++++++++ 39 files changed, 568 insertions(+) create mode 100644 examples/roles/apache2/README.md create mode 100644 examples/roles/apache2/defaults/main.yml create mode 100644 examples/roles/apache2/handlers/main.yml create mode 100644 examples/roles/apache2/meta/main.yml create mode 100644 examples/roles/apache2/tasks/main.yml create mode 100644 examples/roles/apache2/tests/inventory create mode 100644 examples/roles/apache2/tests/test.yml create mode 100644 examples/roles/apache2/vars/main.yml create mode 100644 examples/roles/demo_app/README.md create mode 100644 examples/roles/demo_app/defaults/main.yml create mode 100644 examples/roles/demo_app/files/demo/app/demo.py create mode 100644 examples/roles/demo_app/files/demo/app/demo.wsgi create mode 100644 examples/roles/demo_app/files/demo/app/requirements.txt create mode 100644 examples/roles/demo_app/files/demo/demo.conf create mode 100644 examples/roles/demo_app/handlers/main.yml create mode 100644 examples/roles/demo_app/meta/main.yml create mode 100644 examples/roles/demo_app/tasks/main.yml create mode 100644 examples/roles/demo_app/tests/inventory create mode 100644 examples/roles/demo_app/tests/test.yml create mode 100644 examples/roles/demo_app/vars/main.yml create mode 100644 examples/roles/hosts create mode 100644 examples/roles/mysql/README.md create mode 100644 examples/roles/mysql/defaults/main.yml create mode 100644 examples/roles/mysql/handlers/main.yml create mode 100644 examples/roles/mysql/meta/main.yml create mode 100644 examples/roles/mysql/tasks/main.yml create mode 100644 examples/roles/mysql/tests/inventory create mode 100644 examples/roles/mysql/tests/test.yml create mode 100644 examples/roles/mysql/vars/main.yml create mode 100644 examples/roles/nginx/README.md create mode 100644 examples/roles/nginx/defaults/main.yml create mode 100644 examples/roles/nginx/handlers/main.yml create mode 100644 examples/roles/nginx/meta/main.yml create mode 100644 examples/roles/nginx/tasks/main.yml create mode 100644 examples/roles/nginx/templates/nginx.conf.j2 create mode 100644 examples/roles/nginx/tests/inventory create mode 100644 examples/roles/nginx/tests/test.yml create mode 100644 examples/roles/nginx/vars/main.yml create mode 100644 examples/roles/site.yml diff --git a/examples/roles/apache2/README.md b/examples/roles/apache2/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/roles/apache2/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/roles/apache2/defaults/main.yml b/examples/roles/apache2/defaults/main.yml new file mode 100644 index 0000000..b292d8c --- /dev/null +++ b/examples/roles/apache2/defaults/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for apache2 diff --git a/examples/roles/apache2/handlers/main.yml b/examples/roles/apache2/handlers/main.yml new file mode 100644 index 0000000..c7b7ad9 --- /dev/null +++ b/examples/roles/apache2/handlers/main.yml @@ -0,0 +1,5 @@ +#SPDX-License-Identifier: MIT-0 +--- +# handlers file for apache2 +- name: restart apache2 + service: name=apache2 state=restarted diff --git a/examples/roles/apache2/meta/main.yml b/examples/roles/apache2/meta/main.yml new file mode 100644 index 0000000..36b9858 --- /dev/null +++ b/examples/roles/apache2/meta/main.yml @@ -0,0 +1,35 @@ +#SPDX-License-Identifier: MIT-0 +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: + + 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/examples/roles/apache2/tasks/main.yml b/examples/roles/apache2/tasks/main.yml new file mode 100644 index 0000000..62258a3 --- /dev/null +++ b/examples/roles/apache2/tasks/main.yml @@ -0,0 +1,19 @@ +#SPDX-License-Identifier: MIT-0 +--- +# tasks file for apache2 +- name: install web components + apt: name={{item}} state=present update_cache=yes + with_items: + - apache2 + - libapache2-mod-wsgi-py3 + +- name: ensure mod_wsgi enabled + apache2_module: state=present name=wsgi + notify: restart apache2 + +- name: de-activate default apache site + file: path=/etc/apache2/sites-enabled/000-default.conf state=absent + notify: restart apache2 + +- name: ensure apache2 started + service: name=apache2 state=started enabled=yes diff --git a/examples/roles/apache2/tests/inventory b/examples/roles/apache2/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/examples/roles/apache2/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/examples/roles/apache2/tests/test.yml b/examples/roles/apache2/tests/test.yml new file mode 100644 index 0000000..2918a18 --- /dev/null +++ b/examples/roles/apache2/tests/test.yml @@ -0,0 +1,6 @@ +#SPDX-License-Identifier: MIT-0 +--- +- hosts: localhost + remote_user: root + roles: + - apache2 diff --git a/examples/roles/apache2/vars/main.yml b/examples/roles/apache2/vars/main.yml new file mode 100644 index 0000000..b79cb1f --- /dev/null +++ b/examples/roles/apache2/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for apache2 diff --git a/examples/roles/demo_app/README.md b/examples/roles/demo_app/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/roles/demo_app/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/roles/demo_app/defaults/main.yml b/examples/roles/demo_app/defaults/main.yml new file mode 100644 index 0000000..3259567 --- /dev/null +++ b/examples/roles/demo_app/defaults/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for demo_app diff --git a/examples/roles/demo_app/files/demo/app/demo.py b/examples/roles/demo_app/files/demo/app/demo.py new file mode 100644 index 0000000..f093790 --- /dev/null +++ b/examples/roles/demo_app/files/demo/app/demo.py @@ -0,0 +1,20 @@ +from flask import Flask +from flask_sqlalchemy import SQLAlchemy +import os, socket + +app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URI'] +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +db = SQLAlchemy(app) +hostname = socket.gethostname() + +@app.route('/') +def index(): + return 'Hello, from sunny %s!\n' % hostname + +@app.route('/db') +def dbtest(): + return 'Database Connected from %s!\n' % hostname + +if __name__ == '__main__': + app.run() \ No newline at end of file diff --git a/examples/roles/demo_app/files/demo/app/demo.wsgi b/examples/roles/demo_app/files/demo/app/demo.wsgi new file mode 100644 index 0000000..0b81ee5 --- /dev/null +++ b/examples/roles/demo_app/files/demo/app/demo.wsgi @@ -0,0 +1,10 @@ +activate_this = '/var/www/demo/.venv/bin/activate_this.py' +exec(open(activate_this).read(), {'__file__': activate_this}) + +import os +os.environ['DATABASE_URI'] = 'mysql://demo:demo@db01/demo' + +import sys +sys.path.insert(0, '/var/www/demo') + +from demo import app as application \ No newline at end of file diff --git a/examples/roles/demo_app/files/demo/app/requirements.txt b/examples/roles/demo_app/files/demo/app/requirements.txt new file mode 100644 index 0000000..c8cc0ea --- /dev/null +++ b/examples/roles/demo_app/files/demo/app/requirements.txt @@ -0,0 +1,9 @@ +click==7.1.2 +Flask==1.1.4 +Flask-SQLAlchemy==2.5.1 +greenlet +itsdangerous==1.1.0 +Jinja2==2.11.3 +MarkupSafe==2.0.1 +SQLAlchemy==1.4.32 +Werkzeug==1.0.1 diff --git a/examples/roles/demo_app/files/demo/demo.conf b/examples/roles/demo_app/files/demo/demo.conf new file mode 100644 index 0000000..ac7b9e2 --- /dev/null +++ b/examples/roles/demo_app/files/demo/demo.conf @@ -0,0 +1,11 @@ + + WSGIDaemonProcess demo threads=5 + WSGIScriptAlias / /var/www/demo/demo.wsgi + + + WSGIProcessGroup demo + WSGIApplicationGroup %{GLOBAL} + Order deny,allow + Allow from all + + diff --git a/examples/roles/demo_app/handlers/main.yml b/examples/roles/demo_app/handlers/main.yml new file mode 100644 index 0000000..012a302 --- /dev/null +++ b/examples/roles/demo_app/handlers/main.yml @@ -0,0 +1,5 @@ +#SPDX-License-Identifier: MIT-0 +--- +# handlers file for demo_app +- name: restart apache2 + service: name=apache2 state=restarted diff --git a/examples/roles/demo_app/meta/main.yml b/examples/roles/demo_app/meta/main.yml new file mode 100644 index 0000000..36b9858 --- /dev/null +++ b/examples/roles/demo_app/meta/main.yml @@ -0,0 +1,35 @@ +#SPDX-License-Identifier: MIT-0 +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: + + 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/examples/roles/demo_app/tasks/main.yml b/examples/roles/demo_app/tasks/main.yml new file mode 100644 index 0000000..5578a8d --- /dev/null +++ b/examples/roles/demo_app/tasks/main.yml @@ -0,0 +1,41 @@ +#SPDX-License-Identifier: MIT-0 +--- +# tasks file for demo_app +- name: install web components + apt: name={{item}} state=present update_cache=yes + with_items: + - python3-pip-whl + - python3-virtualenv + - python3-mysqldb + +- name: copy demo app source + copy: src=files/demo/app/ dest=/var/www/demo mode=0755 + notify: restart apache2 + +- name: change ownership of demo app + file: path=/var/www/demo owner=www-data group=www-data recurse=yes + notify: restart apache2 + +- name: copy apache virtual host config + copy: src=files/demo/demo.conf dest=/etc/apache2/sites-available mode=0755 + notify: restart apache2 + +- name: create virtualenv + command: python3 -m venv /var/www/demo/.venv + args: + creates: /var/www/demo/.venv/bin/activate + +- name: source activate virtualenv + shell: source /var/www/demo/.venv/bin/activate + args: + executable: /bin/bash + +- name: pip install upgrade pip + shell: /var/www/demo/.venv/bin/pip install --upgrade pip + +- name: pip install requirements + shell: /var/www/demo/.venv/bin/pip install -r /var/www/demo/requirements.txt + +- name: activate demo apache site + file: src=/etc/apache2/sites-available/demo.conf dest=/etc/apache2/sites-enabled/demo.conf state=link + notify: restart apache2 diff --git a/examples/roles/demo_app/tests/inventory b/examples/roles/demo_app/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/examples/roles/demo_app/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/examples/roles/demo_app/tests/test.yml b/examples/roles/demo_app/tests/test.yml new file mode 100644 index 0000000..e1a4943 --- /dev/null +++ b/examples/roles/demo_app/tests/test.yml @@ -0,0 +1,6 @@ +#SPDX-License-Identifier: MIT-0 +--- +- hosts: localhost + remote_user: root + roles: + - demo_app diff --git a/examples/roles/demo_app/vars/main.yml b/examples/roles/demo_app/vars/main.yml new file mode 100644 index 0000000..9fd5ea3 --- /dev/null +++ b/examples/roles/demo_app/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for demo_app diff --git a/examples/roles/hosts b/examples/roles/hosts new file mode 100644 index 0000000..6f5d628 --- /dev/null +++ b/examples/roles/hosts @@ -0,0 +1,11 @@ +[all:vars] # Definir el intérprete de Python para todos los hosts +ansible_python_interpreter=/usr/bin/python3.12 + +[database] # Definir el grupo de bases de datos +192.168.11.20 + +[loadbalancer] # Definir el grupo de balanceadores de carga +192.168.11.30 + +[webserver] # Definir el grupo de servidores web +192.168.11.40 diff --git a/examples/roles/mysql/README.md b/examples/roles/mysql/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/roles/mysql/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/roles/mysql/defaults/main.yml b/examples/roles/mysql/defaults/main.yml new file mode 100644 index 0000000..978ee0c --- /dev/null +++ b/examples/roles/mysql/defaults/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for mysql diff --git a/examples/roles/mysql/handlers/main.yml b/examples/roles/mysql/handlers/main.yml new file mode 100644 index 0000000..21e663b --- /dev/null +++ b/examples/roles/mysql/handlers/main.yml @@ -0,0 +1,5 @@ +#SPDX-License-Identifier: MIT-0 +--- +# handlers file for mysql +- name: restart mysql + service: name=mysql state=restarted diff --git a/examples/roles/mysql/meta/main.yml b/examples/roles/mysql/meta/main.yml new file mode 100644 index 0000000..36b9858 --- /dev/null +++ b/examples/roles/mysql/meta/main.yml @@ -0,0 +1,35 @@ +#SPDX-License-Identifier: MIT-0 +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: + + 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/examples/roles/mysql/tasks/main.yml b/examples/roles/mysql/tasks/main.yml new file mode 100644 index 0000000..0225093 --- /dev/null +++ b/examples/roles/mysql/tasks/main.yml @@ -0,0 +1,26 @@ +#SPDX-License-Identifier: MIT-0 +--- +# tasks file for mysql +- name: install tools + apt: name={{item}} state=present update_cache=yes + with_items: + - python3-mysqldb + +- name: install mysql-server + apt: name=mysql-server state=present update_cache=yes + +- name: chmod cnf + command: chmod 777 /etc/mysql/my.cnf + +- name: ensure mysql listening on all ports + lineinfile: dest=/etc/mysql/my.cnf regexp=^bind-address line="bind-address = 0.0.0.0" + notify: restart mysql + +- name: ensure mysql started + service: name=mysql state=started enabled=yes + +- name: create demo database + mysql_db: name=demo state=present + +- name: create demo user + mysql_user: name=demo password=demo priv=demo.*:ALL host='%' state=present diff --git a/examples/roles/mysql/tests/inventory b/examples/roles/mysql/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/examples/roles/mysql/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/examples/roles/mysql/tests/test.yml b/examples/roles/mysql/tests/test.yml new file mode 100644 index 0000000..64ef38d --- /dev/null +++ b/examples/roles/mysql/tests/test.yml @@ -0,0 +1,6 @@ +#SPDX-License-Identifier: MIT-0 +--- +- hosts: localhost + remote_user: root + roles: + - mysql diff --git a/examples/roles/mysql/vars/main.yml b/examples/roles/mysql/vars/main.yml new file mode 100644 index 0000000..21a08f8 --- /dev/null +++ b/examples/roles/mysql/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for mysql diff --git a/examples/roles/nginx/README.md b/examples/roles/nginx/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/roles/nginx/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/roles/nginx/defaults/main.yml b/examples/roles/nginx/defaults/main.yml new file mode 100644 index 0000000..940142c --- /dev/null +++ b/examples/roles/nginx/defaults/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# defaults file for nginx diff --git a/examples/roles/nginx/handlers/main.yml b/examples/roles/nginx/handlers/main.yml new file mode 100644 index 0000000..f0b1c2e --- /dev/null +++ b/examples/roles/nginx/handlers/main.yml @@ -0,0 +1,5 @@ +#SPDX-License-Identifier: MIT-0 +# handlers file for nginx +--- +- name: restart nginx + service: name=nginx state=restarted diff --git a/examples/roles/nginx/meta/main.yml b/examples/roles/nginx/meta/main.yml new file mode 100644 index 0000000..36b9858 --- /dev/null +++ b/examples/roles/nginx/meta/main.yml @@ -0,0 +1,35 @@ +#SPDX-License-Identifier: MIT-0 +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: + + 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/examples/roles/nginx/tasks/main.yml b/examples/roles/nginx/tasks/main.yml new file mode 100644 index 0000000..be21d8c --- /dev/null +++ b/examples/roles/nginx/tasks/main.yml @@ -0,0 +1,20 @@ +#SPDX-License-Identifier: MIT-0 +# tasks file for nginx +--- +- name: install nginx + apt: name=nginx state=present update_cache=yes + +- name: configure nginx site + template: src=nginx.conf.j2 dest=/etc/nginx/sites-available/demo mode=0644 + notify: restart nginx + +- name: de-activate default nginx site + file: path=/etc/nginx/sites-enabled/default state=absent + notify: restart nginx + +- name: activate demo nginx site + file: src=/etc/nginx/sites-available/demo dest=/etc/nginx/sites-enabled/demo state=link + notify: restart nginx + +- name: ensure nginx started + service: name=nginx state=started enabled=yes diff --git a/examples/roles/nginx/templates/nginx.conf.j2 b/examples/roles/nginx/templates/nginx.conf.j2 new file mode 100644 index 0000000..4b477b6 --- /dev/null +++ b/examples/roles/nginx/templates/nginx.conf.j2 @@ -0,0 +1,13 @@ +upstream demo { +{% for server in groups.webserver %} + server {{ server }}; +{% endfor %} +} + +server { + listen 80; + + location / { + proxy_pass http://demo; + } +} diff --git a/examples/roles/nginx/tests/inventory b/examples/roles/nginx/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/examples/roles/nginx/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/examples/roles/nginx/tests/test.yml b/examples/roles/nginx/tests/test.yml new file mode 100644 index 0000000..410fda6 --- /dev/null +++ b/examples/roles/nginx/tests/test.yml @@ -0,0 +1,6 @@ +#SPDX-License-Identifier: MIT-0 +--- +- hosts: localhost + remote_user: root + roles: + - nginx diff --git a/examples/roles/nginx/vars/main.yml b/examples/roles/nginx/vars/main.yml new file mode 100644 index 0000000..78c85e6 --- /dev/null +++ b/examples/roles/nginx/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for nginx diff --git a/examples/roles/site.yml b/examples/roles/site.yml new file mode 100644 index 0000000..74d5be7 --- /dev/null +++ b/examples/roles/site.yml @@ -0,0 +1,16 @@ +--- +- hosts: database + become: true + roles: + - mysql + +- hosts: loadbalancer + become: true + roles: + - nginx + +- hosts: webserver + become: true + roles: + - apache2 + - demo_app From 711aa97beed419a7f9f168242aff20802a802c2a Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 14:30:04 +0100 Subject: [PATCH 05/10] Renamed role --- examples/{roles => 015_2_roles}/apache2/README.md | 0 examples/{roles => 015_2_roles}/apache2/defaults/main.yml | 0 examples/{roles => 015_2_roles}/apache2/handlers/main.yml | 0 examples/{roles => 015_2_roles}/apache2/meta/main.yml | 0 examples/{roles => 015_2_roles}/apache2/tasks/main.yml | 0 examples/{roles => 015_2_roles}/apache2/tests/inventory | 0 examples/{roles => 015_2_roles}/apache2/tests/test.yml | 0 examples/{roles => 015_2_roles}/apache2/vars/main.yml | 0 examples/{roles => 015_2_roles}/demo_app/README.md | 0 examples/{roles => 015_2_roles}/demo_app/defaults/main.yml | 0 examples/{roles => 015_2_roles}/demo_app/files/demo/app/demo.py | 0 examples/{roles => 015_2_roles}/demo_app/files/demo/app/demo.wsgi | 0 .../demo_app/files/demo/app/requirements.txt | 0 examples/{roles => 015_2_roles}/demo_app/files/demo/demo.conf | 0 examples/{roles => 015_2_roles}/demo_app/handlers/main.yml | 0 examples/{roles => 015_2_roles}/demo_app/meta/main.yml | 0 examples/{roles => 015_2_roles}/demo_app/tasks/main.yml | 0 examples/{roles => 015_2_roles}/demo_app/tests/inventory | 0 examples/{roles => 015_2_roles}/demo_app/tests/test.yml | 0 examples/{roles => 015_2_roles}/demo_app/vars/main.yml | 0 examples/{roles => 015_2_roles}/hosts | 0 examples/{roles => 015_2_roles}/mysql/README.md | 0 examples/{roles => 015_2_roles}/mysql/defaults/main.yml | 0 examples/{roles => 015_2_roles}/mysql/handlers/main.yml | 0 examples/{roles => 015_2_roles}/mysql/meta/main.yml | 0 examples/{roles => 015_2_roles}/mysql/tasks/main.yml | 0 examples/{roles => 015_2_roles}/mysql/tests/inventory | 0 examples/{roles => 015_2_roles}/mysql/tests/test.yml | 0 examples/{roles => 015_2_roles}/mysql/vars/main.yml | 0 examples/{roles => 015_2_roles}/nginx/README.md | 0 examples/{roles => 015_2_roles}/nginx/defaults/main.yml | 0 examples/{roles => 015_2_roles}/nginx/handlers/main.yml | 0 examples/{roles => 015_2_roles}/nginx/meta/main.yml | 0 examples/{roles => 015_2_roles}/nginx/tasks/main.yml | 0 examples/{roles => 015_2_roles}/nginx/templates/nginx.conf.j2 | 0 examples/{roles => 015_2_roles}/nginx/tests/inventory | 0 examples/{roles => 015_2_roles}/nginx/tests/test.yml | 0 examples/{roles => 015_2_roles}/nginx/vars/main.yml | 0 examples/{roles => 015_2_roles}/site.yml | 0 39 files changed, 0 insertions(+), 0 deletions(-) rename examples/{roles => 015_2_roles}/apache2/README.md (100%) rename examples/{roles => 015_2_roles}/apache2/defaults/main.yml (100%) rename examples/{roles => 015_2_roles}/apache2/handlers/main.yml (100%) rename examples/{roles => 015_2_roles}/apache2/meta/main.yml (100%) rename examples/{roles => 015_2_roles}/apache2/tasks/main.yml (100%) rename examples/{roles => 015_2_roles}/apache2/tests/inventory (100%) rename examples/{roles => 015_2_roles}/apache2/tests/test.yml (100%) rename examples/{roles => 015_2_roles}/apache2/vars/main.yml (100%) rename examples/{roles => 015_2_roles}/demo_app/README.md (100%) rename examples/{roles => 015_2_roles}/demo_app/defaults/main.yml (100%) rename examples/{roles => 015_2_roles}/demo_app/files/demo/app/demo.py (100%) rename examples/{roles => 015_2_roles}/demo_app/files/demo/app/demo.wsgi (100%) rename examples/{roles => 015_2_roles}/demo_app/files/demo/app/requirements.txt (100%) rename examples/{roles => 015_2_roles}/demo_app/files/demo/demo.conf (100%) rename examples/{roles => 015_2_roles}/demo_app/handlers/main.yml (100%) rename examples/{roles => 015_2_roles}/demo_app/meta/main.yml (100%) rename examples/{roles => 015_2_roles}/demo_app/tasks/main.yml (100%) rename examples/{roles => 015_2_roles}/demo_app/tests/inventory (100%) rename examples/{roles => 015_2_roles}/demo_app/tests/test.yml (100%) rename examples/{roles => 015_2_roles}/demo_app/vars/main.yml (100%) rename examples/{roles => 015_2_roles}/hosts (100%) rename examples/{roles => 015_2_roles}/mysql/README.md (100%) rename examples/{roles => 015_2_roles}/mysql/defaults/main.yml (100%) rename examples/{roles => 015_2_roles}/mysql/handlers/main.yml (100%) rename examples/{roles => 015_2_roles}/mysql/meta/main.yml (100%) rename examples/{roles => 015_2_roles}/mysql/tasks/main.yml (100%) rename examples/{roles => 015_2_roles}/mysql/tests/inventory (100%) rename examples/{roles => 015_2_roles}/mysql/tests/test.yml (100%) rename examples/{roles => 015_2_roles}/mysql/vars/main.yml (100%) rename examples/{roles => 015_2_roles}/nginx/README.md (100%) rename examples/{roles => 015_2_roles}/nginx/defaults/main.yml (100%) rename examples/{roles => 015_2_roles}/nginx/handlers/main.yml (100%) rename examples/{roles => 015_2_roles}/nginx/meta/main.yml (100%) rename examples/{roles => 015_2_roles}/nginx/tasks/main.yml (100%) rename examples/{roles => 015_2_roles}/nginx/templates/nginx.conf.j2 (100%) rename examples/{roles => 015_2_roles}/nginx/tests/inventory (100%) rename examples/{roles => 015_2_roles}/nginx/tests/test.yml (100%) rename examples/{roles => 015_2_roles}/nginx/vars/main.yml (100%) rename examples/{roles => 015_2_roles}/site.yml (100%) diff --git a/examples/roles/apache2/README.md b/examples/015_2_roles/apache2/README.md similarity index 100% rename from examples/roles/apache2/README.md rename to examples/015_2_roles/apache2/README.md diff --git a/examples/roles/apache2/defaults/main.yml b/examples/015_2_roles/apache2/defaults/main.yml similarity index 100% rename from examples/roles/apache2/defaults/main.yml rename to examples/015_2_roles/apache2/defaults/main.yml diff --git a/examples/roles/apache2/handlers/main.yml b/examples/015_2_roles/apache2/handlers/main.yml similarity index 100% rename from examples/roles/apache2/handlers/main.yml rename to examples/015_2_roles/apache2/handlers/main.yml diff --git a/examples/roles/apache2/meta/main.yml b/examples/015_2_roles/apache2/meta/main.yml similarity index 100% rename from examples/roles/apache2/meta/main.yml rename to examples/015_2_roles/apache2/meta/main.yml diff --git a/examples/roles/apache2/tasks/main.yml b/examples/015_2_roles/apache2/tasks/main.yml similarity index 100% rename from examples/roles/apache2/tasks/main.yml rename to examples/015_2_roles/apache2/tasks/main.yml diff --git a/examples/roles/apache2/tests/inventory b/examples/015_2_roles/apache2/tests/inventory similarity index 100% rename from examples/roles/apache2/tests/inventory rename to examples/015_2_roles/apache2/tests/inventory diff --git a/examples/roles/apache2/tests/test.yml b/examples/015_2_roles/apache2/tests/test.yml similarity index 100% rename from examples/roles/apache2/tests/test.yml rename to examples/015_2_roles/apache2/tests/test.yml diff --git a/examples/roles/apache2/vars/main.yml b/examples/015_2_roles/apache2/vars/main.yml similarity index 100% rename from examples/roles/apache2/vars/main.yml rename to examples/015_2_roles/apache2/vars/main.yml diff --git a/examples/roles/demo_app/README.md b/examples/015_2_roles/demo_app/README.md similarity index 100% rename from examples/roles/demo_app/README.md rename to examples/015_2_roles/demo_app/README.md diff --git a/examples/roles/demo_app/defaults/main.yml b/examples/015_2_roles/demo_app/defaults/main.yml similarity index 100% rename from examples/roles/demo_app/defaults/main.yml rename to examples/015_2_roles/demo_app/defaults/main.yml diff --git a/examples/roles/demo_app/files/demo/app/demo.py b/examples/015_2_roles/demo_app/files/demo/app/demo.py similarity index 100% rename from examples/roles/demo_app/files/demo/app/demo.py rename to examples/015_2_roles/demo_app/files/demo/app/demo.py diff --git a/examples/roles/demo_app/files/demo/app/demo.wsgi b/examples/015_2_roles/demo_app/files/demo/app/demo.wsgi similarity index 100% rename from examples/roles/demo_app/files/demo/app/demo.wsgi rename to examples/015_2_roles/demo_app/files/demo/app/demo.wsgi diff --git a/examples/roles/demo_app/files/demo/app/requirements.txt b/examples/015_2_roles/demo_app/files/demo/app/requirements.txt similarity index 100% rename from examples/roles/demo_app/files/demo/app/requirements.txt rename to examples/015_2_roles/demo_app/files/demo/app/requirements.txt diff --git a/examples/roles/demo_app/files/demo/demo.conf b/examples/015_2_roles/demo_app/files/demo/demo.conf similarity index 100% rename from examples/roles/demo_app/files/demo/demo.conf rename to examples/015_2_roles/demo_app/files/demo/demo.conf diff --git a/examples/roles/demo_app/handlers/main.yml b/examples/015_2_roles/demo_app/handlers/main.yml similarity index 100% rename from examples/roles/demo_app/handlers/main.yml rename to examples/015_2_roles/demo_app/handlers/main.yml diff --git a/examples/roles/demo_app/meta/main.yml b/examples/015_2_roles/demo_app/meta/main.yml similarity index 100% rename from examples/roles/demo_app/meta/main.yml rename to examples/015_2_roles/demo_app/meta/main.yml diff --git a/examples/roles/demo_app/tasks/main.yml b/examples/015_2_roles/demo_app/tasks/main.yml similarity index 100% rename from examples/roles/demo_app/tasks/main.yml rename to examples/015_2_roles/demo_app/tasks/main.yml diff --git a/examples/roles/demo_app/tests/inventory b/examples/015_2_roles/demo_app/tests/inventory similarity index 100% rename from examples/roles/demo_app/tests/inventory rename to examples/015_2_roles/demo_app/tests/inventory diff --git a/examples/roles/demo_app/tests/test.yml b/examples/015_2_roles/demo_app/tests/test.yml similarity index 100% rename from examples/roles/demo_app/tests/test.yml rename to examples/015_2_roles/demo_app/tests/test.yml diff --git a/examples/roles/demo_app/vars/main.yml b/examples/015_2_roles/demo_app/vars/main.yml similarity index 100% rename from examples/roles/demo_app/vars/main.yml rename to examples/015_2_roles/demo_app/vars/main.yml diff --git a/examples/roles/hosts b/examples/015_2_roles/hosts similarity index 100% rename from examples/roles/hosts rename to examples/015_2_roles/hosts diff --git a/examples/roles/mysql/README.md b/examples/015_2_roles/mysql/README.md similarity index 100% rename from examples/roles/mysql/README.md rename to examples/015_2_roles/mysql/README.md diff --git a/examples/roles/mysql/defaults/main.yml b/examples/015_2_roles/mysql/defaults/main.yml similarity index 100% rename from examples/roles/mysql/defaults/main.yml rename to examples/015_2_roles/mysql/defaults/main.yml diff --git a/examples/roles/mysql/handlers/main.yml b/examples/015_2_roles/mysql/handlers/main.yml similarity index 100% rename from examples/roles/mysql/handlers/main.yml rename to examples/015_2_roles/mysql/handlers/main.yml diff --git a/examples/roles/mysql/meta/main.yml b/examples/015_2_roles/mysql/meta/main.yml similarity index 100% rename from examples/roles/mysql/meta/main.yml rename to examples/015_2_roles/mysql/meta/main.yml diff --git a/examples/roles/mysql/tasks/main.yml b/examples/015_2_roles/mysql/tasks/main.yml similarity index 100% rename from examples/roles/mysql/tasks/main.yml rename to examples/015_2_roles/mysql/tasks/main.yml diff --git a/examples/roles/mysql/tests/inventory b/examples/015_2_roles/mysql/tests/inventory similarity index 100% rename from examples/roles/mysql/tests/inventory rename to examples/015_2_roles/mysql/tests/inventory diff --git a/examples/roles/mysql/tests/test.yml b/examples/015_2_roles/mysql/tests/test.yml similarity index 100% rename from examples/roles/mysql/tests/test.yml rename to examples/015_2_roles/mysql/tests/test.yml diff --git a/examples/roles/mysql/vars/main.yml b/examples/015_2_roles/mysql/vars/main.yml similarity index 100% rename from examples/roles/mysql/vars/main.yml rename to examples/015_2_roles/mysql/vars/main.yml diff --git a/examples/roles/nginx/README.md b/examples/015_2_roles/nginx/README.md similarity index 100% rename from examples/roles/nginx/README.md rename to examples/015_2_roles/nginx/README.md diff --git a/examples/roles/nginx/defaults/main.yml b/examples/015_2_roles/nginx/defaults/main.yml similarity index 100% rename from examples/roles/nginx/defaults/main.yml rename to examples/015_2_roles/nginx/defaults/main.yml diff --git a/examples/roles/nginx/handlers/main.yml b/examples/015_2_roles/nginx/handlers/main.yml similarity index 100% rename from examples/roles/nginx/handlers/main.yml rename to examples/015_2_roles/nginx/handlers/main.yml diff --git a/examples/roles/nginx/meta/main.yml b/examples/015_2_roles/nginx/meta/main.yml similarity index 100% rename from examples/roles/nginx/meta/main.yml rename to examples/015_2_roles/nginx/meta/main.yml diff --git a/examples/roles/nginx/tasks/main.yml b/examples/015_2_roles/nginx/tasks/main.yml similarity index 100% rename from examples/roles/nginx/tasks/main.yml rename to examples/015_2_roles/nginx/tasks/main.yml diff --git a/examples/roles/nginx/templates/nginx.conf.j2 b/examples/015_2_roles/nginx/templates/nginx.conf.j2 similarity index 100% rename from examples/roles/nginx/templates/nginx.conf.j2 rename to examples/015_2_roles/nginx/templates/nginx.conf.j2 diff --git a/examples/roles/nginx/tests/inventory b/examples/015_2_roles/nginx/tests/inventory similarity index 100% rename from examples/roles/nginx/tests/inventory rename to examples/015_2_roles/nginx/tests/inventory diff --git a/examples/roles/nginx/tests/test.yml b/examples/015_2_roles/nginx/tests/test.yml similarity index 100% rename from examples/roles/nginx/tests/test.yml rename to examples/015_2_roles/nginx/tests/test.yml diff --git a/examples/roles/nginx/vars/main.yml b/examples/015_2_roles/nginx/vars/main.yml similarity index 100% rename from examples/roles/nginx/vars/main.yml rename to examples/015_2_roles/nginx/vars/main.yml diff --git a/examples/roles/site.yml b/examples/015_2_roles/site.yml similarity index 100% rename from examples/roles/site.yml rename to examples/015_2_roles/site.yml From ff82d63bd07d4d2d67331ba9f74a4159e9c1ede9 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 14:35:00 +0100 Subject: [PATCH 06/10] Renamed role 2 --- examples/015_roles/playbooks/hostname.yml | 5 -- .../015_roles/playbooks/stack_restart.yml | 33 ------- examples/015_roles/roles/apache2/.travis.yml | 29 ------ examples/015_roles/roles/apache2/README.md | 38 -------- .../015_roles/roles/apache2/defaults/main.yml | 2 - .../015_roles/roles/apache2/handlers/main.yml | 4 - .../015_roles/roles/apache2/meta/main.yml | 52 ----------- .../015_roles/roles/apache2/tasks/main.yml | 21 ----- .../015_roles/roles/apache2/tests/inventory | 2 - .../015_roles/roles/apache2/tests/test.yml | 5 -- .../015_roles/roles/apache2/vars/main.yml | 2 - examples/015_roles/roles/control/.travis.yml | 29 ------ examples/015_roles/roles/control/README.md | 38 -------- .../015_roles/roles/control/defaults/main.yml | 2 - .../015_roles/roles/control/handlers/main.yml | 2 - .../015_roles/roles/control/meta/main.yml | 52 ----------- .../015_roles/roles/control/tasks/main.yml | 7 -- .../015_roles/roles/control/tests/inventory | 2 - .../015_roles/roles/control/tests/test.yml | 5 -- .../015_roles/roles/control/vars/main.yml | 2 - examples/015_roles/roles/demo_app/.travis.yml | 29 ------ examples/015_roles/roles/demo_app/README.md | 38 -------- .../roles/demo_app/defaults/main.yml | 2 - .../roles/demo_app/files/demo/app/demo.py | 20 ----- .../roles/demo_app/files/demo/app/demo.wsgi | 10 --- .../demo_app/files/demo/app/requirements.txt | 9 -- .../roles/demo_app/files/demo/demo.conf | 11 --- .../roles/demo_app/handlers/main.yml | 4 - .../015_roles/roles/demo_app/meta/main.yml | 52 ----------- .../015_roles/roles/demo_app/tasks/main.yml | 24 ----- .../015_roles/roles/demo_app/tests/inventory | 2 - .../015_roles/roles/demo_app/tests/test.yml | 5 -- .../015_roles/roles/demo_app/vars/main.yml | 2 - examples/015_roles/roles/mysql/.travis.yml | 29 ------ examples/015_roles/roles/mysql/README.md | 38 -------- .../015_roles/roles/mysql/defaults/main.yml | 2 - .../015_roles/roles/mysql/handlers/main.yml | 4 - examples/015_roles/roles/mysql/meta/main.yml | 52 ----------- examples/015_roles/roles/mysql/tasks/main.yml | 25 ------ .../015_roles/roles/mysql/tests/inventory | 2 - examples/015_roles/roles/mysql/tests/test.yml | 5 -- examples/015_roles/roles/mysql/vars/main.yml | 2 - examples/015_roles/roles/nginx/.travis.yml | 29 ------ examples/015_roles/roles/nginx/README.md | 38 -------- .../015_roles/roles/nginx/defaults/main.yml | 2 - .../015_roles/roles/nginx/handlers/main.yml | 4 - examples/015_roles/roles/nginx/meta/main.yml | 52 ----------- examples/015_roles/roles/nginx/tasks/main.yml | 19 ---- .../roles/nginx/templates/nginx.conf.j2 | 13 --- .../015_roles/roles/nginx/tests/inventory | 2 - examples/015_roles/roles/nginx/tests/test.yml | 5 -- examples/015_roles/roles/nginx/vars/main.yml | 2 - examples/015_roles/roles/status/.travis.yml | 29 ------ examples/015_roles/roles/status/README.md | 38 -------- .../015_roles/roles/status/defaults/main.yml | 2 - .../015_roles/roles/status/handlers/main.yml | 2 - examples/015_roles/roles/status/meta/main.yml | 52 ----------- .../015_roles/roles/status/tests/inventory | 2 - .../015_roles/roles/status/tests/test.yml | 5 -- examples/015_roles/roles/status/vars/main.yml | 2 - examples/015_roles/site.yml | 88 ------------------- examples/015_roles/stack_status.yml | 67 -------------- examples/015_roles/templates/nginx.conf.j2 | 13 --- 63 files changed, 1165 deletions(-) delete mode 100644 examples/015_roles/playbooks/hostname.yml delete mode 100644 examples/015_roles/playbooks/stack_restart.yml delete mode 100644 examples/015_roles/roles/apache2/.travis.yml delete mode 100644 examples/015_roles/roles/apache2/README.md delete mode 100644 examples/015_roles/roles/apache2/defaults/main.yml delete mode 100644 examples/015_roles/roles/apache2/handlers/main.yml delete mode 100644 examples/015_roles/roles/apache2/meta/main.yml delete mode 100644 examples/015_roles/roles/apache2/tasks/main.yml delete mode 100644 examples/015_roles/roles/apache2/tests/inventory delete mode 100644 examples/015_roles/roles/apache2/tests/test.yml delete mode 100644 examples/015_roles/roles/apache2/vars/main.yml delete mode 100644 examples/015_roles/roles/control/.travis.yml delete mode 100644 examples/015_roles/roles/control/README.md delete mode 100644 examples/015_roles/roles/control/defaults/main.yml delete mode 100644 examples/015_roles/roles/control/handlers/main.yml delete mode 100644 examples/015_roles/roles/control/meta/main.yml delete mode 100644 examples/015_roles/roles/control/tasks/main.yml delete mode 100644 examples/015_roles/roles/control/tests/inventory delete mode 100644 examples/015_roles/roles/control/tests/test.yml delete mode 100644 examples/015_roles/roles/control/vars/main.yml delete mode 100644 examples/015_roles/roles/demo_app/.travis.yml delete mode 100644 examples/015_roles/roles/demo_app/README.md delete mode 100644 examples/015_roles/roles/demo_app/defaults/main.yml delete mode 100644 examples/015_roles/roles/demo_app/files/demo/app/demo.py delete mode 100644 examples/015_roles/roles/demo_app/files/demo/app/demo.wsgi delete mode 100644 examples/015_roles/roles/demo_app/files/demo/app/requirements.txt delete mode 100644 examples/015_roles/roles/demo_app/files/demo/demo.conf delete mode 100644 examples/015_roles/roles/demo_app/handlers/main.yml delete mode 100644 examples/015_roles/roles/demo_app/meta/main.yml delete mode 100644 examples/015_roles/roles/demo_app/tasks/main.yml delete mode 100644 examples/015_roles/roles/demo_app/tests/inventory delete mode 100644 examples/015_roles/roles/demo_app/tests/test.yml delete mode 100644 examples/015_roles/roles/demo_app/vars/main.yml delete mode 100644 examples/015_roles/roles/mysql/.travis.yml delete mode 100644 examples/015_roles/roles/mysql/README.md delete mode 100644 examples/015_roles/roles/mysql/defaults/main.yml delete mode 100644 examples/015_roles/roles/mysql/handlers/main.yml delete mode 100644 examples/015_roles/roles/mysql/meta/main.yml delete mode 100644 examples/015_roles/roles/mysql/tasks/main.yml delete mode 100644 examples/015_roles/roles/mysql/tests/inventory delete mode 100644 examples/015_roles/roles/mysql/tests/test.yml delete mode 100644 examples/015_roles/roles/mysql/vars/main.yml delete mode 100644 examples/015_roles/roles/nginx/.travis.yml delete mode 100644 examples/015_roles/roles/nginx/README.md delete mode 100644 examples/015_roles/roles/nginx/defaults/main.yml delete mode 100644 examples/015_roles/roles/nginx/handlers/main.yml delete mode 100644 examples/015_roles/roles/nginx/meta/main.yml delete mode 100644 examples/015_roles/roles/nginx/tasks/main.yml delete mode 100644 examples/015_roles/roles/nginx/templates/nginx.conf.j2 delete mode 100644 examples/015_roles/roles/nginx/tests/inventory delete mode 100644 examples/015_roles/roles/nginx/tests/test.yml delete mode 100644 examples/015_roles/roles/nginx/vars/main.yml delete mode 100644 examples/015_roles/roles/status/.travis.yml delete mode 100644 examples/015_roles/roles/status/README.md delete mode 100644 examples/015_roles/roles/status/defaults/main.yml delete mode 100644 examples/015_roles/roles/status/handlers/main.yml delete mode 100644 examples/015_roles/roles/status/meta/main.yml delete mode 100644 examples/015_roles/roles/status/tests/inventory delete mode 100644 examples/015_roles/roles/status/tests/test.yml delete mode 100644 examples/015_roles/roles/status/vars/main.yml delete mode 100644 examples/015_roles/site.yml delete mode 100644 examples/015_roles/stack_status.yml delete mode 100644 examples/015_roles/templates/nginx.conf.j2 diff --git a/examples/015_roles/playbooks/hostname.yml b/examples/015_roles/playbooks/hostname.yml deleted file mode 100644 index a1a3ad6..0000000 --- a/examples/015_roles/playbooks/hostname.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - - hosts: all - tasks: - - name: get server hostname - command: hostname diff --git a/examples/015_roles/playbooks/stack_restart.yml b/examples/015_roles/playbooks/stack_restart.yml deleted file mode 100644 index b55de3d..0000000 --- a/examples/015_roles/playbooks/stack_restart.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -# Bring stack down -- hosts: loadbalancer - become: true - tasks: - - service: name=nginx state=stopped - - wait_for: port=80 state=drained - -- hosts: webserver - become: true - tasks: - - service: name=apache2 state=stopped - - wait_for: port=80 state=stopped - -# Restart mysql -- hosts: database - become: true - tasks: - - service: name=mysql state=restarted - - wait_for: port=3306 state=started - -# Bring stack up -- hosts: webserver - become: true - tasks: - - service: name=apache2 state=started - - wait_for: port=80 - -- hosts: loadbalancer - become: true - tasks: - - service: name=nginx state=started - - wait_for: port=80 diff --git a/examples/015_roles/roles/apache2/.travis.yml b/examples/015_roles/roles/apache2/.travis.yml deleted file mode 100644 index 36bbf62..0000000 --- a/examples/015_roles/roles/apache2/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -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/examples/015_roles/roles/apache2/README.md b/examples/015_roles/roles/apache2/README.md deleted file mode 100644 index 225dd44..0000000 --- a/examples/015_roles/roles/apache2/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -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: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_roles/roles/apache2/defaults/main.yml b/examples/015_roles/roles/apache2/defaults/main.yml deleted file mode 100644 index 0381169..0000000 --- a/examples/015_roles/roles/apache2/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for apache2 diff --git a/examples/015_roles/roles/apache2/handlers/main.yml b/examples/015_roles/roles/apache2/handlers/main.yml deleted file mode 100644 index faa75e1..0000000 --- a/examples/015_roles/roles/apache2/handlers/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -# handlers file for apache2 ---- -- name: restart apache2 - service: name=apache2 state=restarted diff --git a/examples/015_roles/roles/apache2/meta/main.yml b/examples/015_roles/roles/apache2/meta/main.yml deleted file mode 100644 index c572acc..0000000 --- a/examples/015_roles/roles/apache2/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -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/examples/015_roles/roles/apache2/tasks/main.yml b/examples/015_roles/roles/apache2/tasks/main.yml deleted file mode 100644 index f06f2c1..0000000 --- a/examples/015_roles/roles/apache2/tasks/main.yml +++ /dev/null @@ -1,21 +0,0 @@ -# tasks file for apache2 ---- -- name: install web components - apt: name={{item}} state=present update_cache=yes - with_items: - - apache2 - - libapache2-mod-wsgi-py3 - - python-pip-whl - - python3-virtualenv - - python3-mysqldb - -- name: ensure mod_wsgi enabled - apache2_module: state=present name=wsgi - notify: restart apache2 - -- name: de-activate default apache site - file: path=/etc/apache2/sites-enabled/000-default.conf state=absent - notify: restart apache2 - -- name: ensure apache2 started - service: name=apache2 state=started enabled=yes diff --git a/examples/015_roles/roles/apache2/tests/inventory b/examples/015_roles/roles/apache2/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/examples/015_roles/roles/apache2/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/examples/015_roles/roles/apache2/tests/test.yml b/examples/015_roles/roles/apache2/tests/test.yml deleted file mode 100644 index 7d2d6da..0000000 --- a/examples/015_roles/roles/apache2/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - apache2 diff --git a/examples/015_roles/roles/apache2/vars/main.yml b/examples/015_roles/roles/apache2/vars/main.yml deleted file mode 100644 index 5d23ceb..0000000 --- a/examples/015_roles/roles/apache2/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for apache2 diff --git a/examples/015_roles/roles/control/.travis.yml b/examples/015_roles/roles/control/.travis.yml deleted file mode 100644 index 36bbf62..0000000 --- a/examples/015_roles/roles/control/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -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/examples/015_roles/roles/control/README.md b/examples/015_roles/roles/control/README.md deleted file mode 100644 index 225dd44..0000000 --- a/examples/015_roles/roles/control/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -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: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_roles/roles/control/defaults/main.yml b/examples/015_roles/roles/control/defaults/main.yml deleted file mode 100644 index 9fe52bd..0000000 --- a/examples/015_roles/roles/control/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for control diff --git a/examples/015_roles/roles/control/handlers/main.yml b/examples/015_roles/roles/control/handlers/main.yml deleted file mode 100644 index 4136893..0000000 --- a/examples/015_roles/roles/control/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for control diff --git a/examples/015_roles/roles/control/meta/main.yml b/examples/015_roles/roles/control/meta/main.yml deleted file mode 100644 index c572acc..0000000 --- a/examples/015_roles/roles/control/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -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/examples/015_roles/roles/control/tasks/main.yml b/examples/015_roles/roles/control/tasks/main.yml deleted file mode 100644 index 93318e3..0000000 --- a/examples/015_roles/roles/control/tasks/main.yml +++ /dev/null @@ -1,7 +0,0 @@ -# tasks file for control ---- -- name: install tools - apt: name={{item}} state=present update_cache=yes - with_items: - - curl - - python-httplib2 diff --git a/examples/015_roles/roles/control/tests/inventory b/examples/015_roles/roles/control/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/examples/015_roles/roles/control/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/examples/015_roles/roles/control/tests/test.yml b/examples/015_roles/roles/control/tests/test.yml deleted file mode 100644 index 1a668ab..0000000 --- a/examples/015_roles/roles/control/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - control diff --git a/examples/015_roles/roles/control/vars/main.yml b/examples/015_roles/roles/control/vars/main.yml deleted file mode 100644 index eadc8b6..0000000 --- a/examples/015_roles/roles/control/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for control diff --git a/examples/015_roles/roles/demo_app/.travis.yml b/examples/015_roles/roles/demo_app/.travis.yml deleted file mode 100644 index 36bbf62..0000000 --- a/examples/015_roles/roles/demo_app/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -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/examples/015_roles/roles/demo_app/README.md b/examples/015_roles/roles/demo_app/README.md deleted file mode 100644 index 225dd44..0000000 --- a/examples/015_roles/roles/demo_app/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -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: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_roles/roles/demo_app/defaults/main.yml b/examples/015_roles/roles/demo_app/defaults/main.yml deleted file mode 100644 index 914e957..0000000 --- a/examples/015_roles/roles/demo_app/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for demo_app diff --git a/examples/015_roles/roles/demo_app/files/demo/app/demo.py b/examples/015_roles/roles/demo_app/files/demo/app/demo.py deleted file mode 100644 index f093790..0000000 --- a/examples/015_roles/roles/demo_app/files/demo/app/demo.py +++ /dev/null @@ -1,20 +0,0 @@ -from flask import Flask -from flask_sqlalchemy import SQLAlchemy -import os, socket - -app = Flask(__name__) -app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URI'] -app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False -db = SQLAlchemy(app) -hostname = socket.gethostname() - -@app.route('/') -def index(): - return 'Hello, from sunny %s!\n' % hostname - -@app.route('/db') -def dbtest(): - return 'Database Connected from %s!\n' % hostname - -if __name__ == '__main__': - app.run() \ No newline at end of file diff --git a/examples/015_roles/roles/demo_app/files/demo/app/demo.wsgi b/examples/015_roles/roles/demo_app/files/demo/app/demo.wsgi deleted file mode 100644 index 0b81ee5..0000000 --- a/examples/015_roles/roles/demo_app/files/demo/app/demo.wsgi +++ /dev/null @@ -1,10 +0,0 @@ -activate_this = '/var/www/demo/.venv/bin/activate_this.py' -exec(open(activate_this).read(), {'__file__': activate_this}) - -import os -os.environ['DATABASE_URI'] = 'mysql://demo:demo@db01/demo' - -import sys -sys.path.insert(0, '/var/www/demo') - -from demo import app as application \ No newline at end of file diff --git a/examples/015_roles/roles/demo_app/files/demo/app/requirements.txt b/examples/015_roles/roles/demo_app/files/demo/app/requirements.txt deleted file mode 100644 index d51b4ef..0000000 --- a/examples/015_roles/roles/demo_app/files/demo/app/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -click==7.1.2 -Flask==1.1.4 -Flask-SQLAlchemy==2.5.1 -greenlet==1.1.2 -itsdangerous==1.1.0 -Jinja2==2.11.3 -MarkupSafe==2.0.1 -SQLAlchemy==1.4.32 -Werkzeug==1.0.1 \ No newline at end of file diff --git a/examples/015_roles/roles/demo_app/files/demo/demo.conf b/examples/015_roles/roles/demo_app/files/demo/demo.conf deleted file mode 100644 index ac7b9e2..0000000 --- a/examples/015_roles/roles/demo_app/files/demo/demo.conf +++ /dev/null @@ -1,11 +0,0 @@ - - WSGIDaemonProcess demo threads=5 - WSGIScriptAlias / /var/www/demo/demo.wsgi - - - WSGIProcessGroup demo - WSGIApplicationGroup %{GLOBAL} - Order deny,allow - Allow from all - - diff --git a/examples/015_roles/roles/demo_app/handlers/main.yml b/examples/015_roles/roles/demo_app/handlers/main.yml deleted file mode 100644 index 0ff1f25..0000000 --- a/examples/015_roles/roles/demo_app/handlers/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -# handlers file for demo_app ---- -- name: restart apache2 - service: name=apache2 state=restarted diff --git a/examples/015_roles/roles/demo_app/meta/main.yml b/examples/015_roles/roles/demo_app/meta/main.yml deleted file mode 100644 index c572acc..0000000 --- a/examples/015_roles/roles/demo_app/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -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/examples/015_roles/roles/demo_app/tasks/main.yml b/examples/015_roles/roles/demo_app/tasks/main.yml deleted file mode 100644 index e1dcc64..0000000 --- a/examples/015_roles/roles/demo_app/tasks/main.yml +++ /dev/null @@ -1,24 +0,0 @@ -# tasks file for demo_app ---- -- name: install web components - apt: name={{item}} state=present update_cache=yes - with_items: - - python-pip-whl - - python3-virtualenv - - python3-mysqldb - -- name: copy demo app source - copy: src=files/demo/app/ dest=/var/www/demo mode=0755 - notify: restart apache2 - -- name: copy apache virtual host config - copy: src=files/demo/demo.conf dest=/etc/apache2/sites-available mode=0755 - notify: restart apache2 - -- name: setup python virtualenv - pip: requirements=/var/www/demo/requirements.txt virtualenv=/var/www/demo/.venv - notify: restart apache2 - -- name: activate demo apache site - file: src=/etc/apache2/sites-available/demo.conf dest=/etc/apache2/sites-enabled/demo.conf state=link - notify: restart apache2 diff --git a/examples/015_roles/roles/demo_app/tests/inventory b/examples/015_roles/roles/demo_app/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/examples/015_roles/roles/demo_app/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/examples/015_roles/roles/demo_app/tests/test.yml b/examples/015_roles/roles/demo_app/tests/test.yml deleted file mode 100644 index 2b0cbd9..0000000 --- a/examples/015_roles/roles/demo_app/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - demo_app diff --git a/examples/015_roles/roles/demo_app/vars/main.yml b/examples/015_roles/roles/demo_app/vars/main.yml deleted file mode 100644 index 52fb613..0000000 --- a/examples/015_roles/roles/demo_app/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for demo_app diff --git a/examples/015_roles/roles/mysql/.travis.yml b/examples/015_roles/roles/mysql/.travis.yml deleted file mode 100644 index 36bbf62..0000000 --- a/examples/015_roles/roles/mysql/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -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/examples/015_roles/roles/mysql/README.md b/examples/015_roles/roles/mysql/README.md deleted file mode 100644 index 225dd44..0000000 --- a/examples/015_roles/roles/mysql/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -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: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_roles/roles/mysql/defaults/main.yml b/examples/015_roles/roles/mysql/defaults/main.yml deleted file mode 100644 index e9ebcba..0000000 --- a/examples/015_roles/roles/mysql/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for mysql diff --git a/examples/015_roles/roles/mysql/handlers/main.yml b/examples/015_roles/roles/mysql/handlers/main.yml deleted file mode 100644 index 68cccce..0000000 --- a/examples/015_roles/roles/mysql/handlers/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -# handlers file for mysql ---- -- name: restart mysql - service: name=mysql state=restarted diff --git a/examples/015_roles/roles/mysql/meta/main.yml b/examples/015_roles/roles/mysql/meta/main.yml deleted file mode 100644 index c572acc..0000000 --- a/examples/015_roles/roles/mysql/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -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/examples/015_roles/roles/mysql/tasks/main.yml b/examples/015_roles/roles/mysql/tasks/main.yml deleted file mode 100644 index c6e1e59..0000000 --- a/examples/015_roles/roles/mysql/tasks/main.yml +++ /dev/null @@ -1,25 +0,0 @@ -# tasks file for mysql ---- -- name: install tools - apt: name={{item}} state=present update_cache=yes - with_items: - - python3-mysqldb - -- name: install mysql-server - apt: name=mysql-server state=present update_cache=yes - -- name: chmod cnf - command: chmod 777 /etc/mysql/my.cnf - -- name: ensure mysql listening on all ports - lineinfile: dest=/etc/mysql/my.cnf regexp=^bind-address line="bind-address = 0.0.0.0" - notify: restart mysql - -- name: ensure mysql started - service: name=mysql state=started enabled=yes - -- name: create demo database - mysql_db: name=demo state=present - -- name: create demo user - mysql_user: name=demo password=demo priv=demo.*:ALL host='%' state=present diff --git a/examples/015_roles/roles/mysql/tests/inventory b/examples/015_roles/roles/mysql/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/examples/015_roles/roles/mysql/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/examples/015_roles/roles/mysql/tests/test.yml b/examples/015_roles/roles/mysql/tests/test.yml deleted file mode 100644 index 15feaa1..0000000 --- a/examples/015_roles/roles/mysql/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - mysql diff --git a/examples/015_roles/roles/mysql/vars/main.yml b/examples/015_roles/roles/mysql/vars/main.yml deleted file mode 100644 index a79bfed..0000000 --- a/examples/015_roles/roles/mysql/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for mysql diff --git a/examples/015_roles/roles/nginx/.travis.yml b/examples/015_roles/roles/nginx/.travis.yml deleted file mode 100644 index 36bbf62..0000000 --- a/examples/015_roles/roles/nginx/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -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/examples/015_roles/roles/nginx/README.md b/examples/015_roles/roles/nginx/README.md deleted file mode 100644 index 225dd44..0000000 --- a/examples/015_roles/roles/nginx/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -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: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_roles/roles/nginx/defaults/main.yml b/examples/015_roles/roles/nginx/defaults/main.yml deleted file mode 100644 index 78c8c76..0000000 --- a/examples/015_roles/roles/nginx/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for nginx diff --git a/examples/015_roles/roles/nginx/handlers/main.yml b/examples/015_roles/roles/nginx/handlers/main.yml deleted file mode 100644 index 09669a2..0000000 --- a/examples/015_roles/roles/nginx/handlers/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -# handlers file for nginx ---- -- name: restart nginx - service: name=nginx state=restarted diff --git a/examples/015_roles/roles/nginx/meta/main.yml b/examples/015_roles/roles/nginx/meta/main.yml deleted file mode 100644 index c572acc..0000000 --- a/examples/015_roles/roles/nginx/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -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/examples/015_roles/roles/nginx/tasks/main.yml b/examples/015_roles/roles/nginx/tasks/main.yml deleted file mode 100644 index 15b552d..0000000 --- a/examples/015_roles/roles/nginx/tasks/main.yml +++ /dev/null @@ -1,19 +0,0 @@ -# tasks file for nginx ---- -- name: install nginx - apt: name=nginx state=present update_cache=yes - -- name: configure nginx site - template: src=nginx.conf.j2 dest=/etc/nginx/sites-available/demo mode=0644 - notify: restart nginx - -- name: de-activate default nginx site - file: path=/etc/nginx/sites-enabled/default state=absent - notify: restart nginx - -- name: activate demo nginx site - file: src=/etc/nginx/sites-available/demo dest=/etc/nginx/sites-enabled/demo state=link - notify: restart nginx - -- name: ensure nginx started - service: name=nginx state=started enabled=yes diff --git a/examples/015_roles/roles/nginx/templates/nginx.conf.j2 b/examples/015_roles/roles/nginx/templates/nginx.conf.j2 deleted file mode 100644 index 4b477b6..0000000 --- a/examples/015_roles/roles/nginx/templates/nginx.conf.j2 +++ /dev/null @@ -1,13 +0,0 @@ -upstream demo { -{% for server in groups.webserver %} - server {{ server }}; -{% endfor %} -} - -server { - listen 80; - - location / { - proxy_pass http://demo; - } -} diff --git a/examples/015_roles/roles/nginx/tests/inventory b/examples/015_roles/roles/nginx/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/examples/015_roles/roles/nginx/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/examples/015_roles/roles/nginx/tests/test.yml b/examples/015_roles/roles/nginx/tests/test.yml deleted file mode 100644 index 261c779..0000000 --- a/examples/015_roles/roles/nginx/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - nginx diff --git a/examples/015_roles/roles/nginx/vars/main.yml b/examples/015_roles/roles/nginx/vars/main.yml deleted file mode 100644 index d45faf6..0000000 --- a/examples/015_roles/roles/nginx/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for nginx diff --git a/examples/015_roles/roles/status/.travis.yml b/examples/015_roles/roles/status/.travis.yml deleted file mode 100644 index 36bbf62..0000000 --- a/examples/015_roles/roles/status/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -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/examples/015_roles/roles/status/README.md b/examples/015_roles/roles/status/README.md deleted file mode 100644 index 225dd44..0000000 --- a/examples/015_roles/roles/status/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -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: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_roles/roles/status/defaults/main.yml b/examples/015_roles/roles/status/defaults/main.yml deleted file mode 100644 index af48236..0000000 --- a/examples/015_roles/roles/status/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for status diff --git a/examples/015_roles/roles/status/handlers/main.yml b/examples/015_roles/roles/status/handlers/main.yml deleted file mode 100644 index ca3a957..0000000 --- a/examples/015_roles/roles/status/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for status diff --git a/examples/015_roles/roles/status/meta/main.yml b/examples/015_roles/roles/status/meta/main.yml deleted file mode 100644 index c572acc..0000000 --- a/examples/015_roles/roles/status/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -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/examples/015_roles/roles/status/tests/inventory b/examples/015_roles/roles/status/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/examples/015_roles/roles/status/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/examples/015_roles/roles/status/tests/test.yml b/examples/015_roles/roles/status/tests/test.yml deleted file mode 100644 index e6b10b3..0000000 --- a/examples/015_roles/roles/status/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - status diff --git a/examples/015_roles/roles/status/vars/main.yml b/examples/015_roles/roles/status/vars/main.yml deleted file mode 100644 index 7751cdd..0000000 --- a/examples/015_roles/roles/status/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for status diff --git a/examples/015_roles/site.yml b/examples/015_roles/site.yml deleted file mode 100644 index f596f9f..0000000 --- a/examples/015_roles/site.yml +++ /dev/null @@ -1,88 +0,0 @@ ---- -- hosts: control - become: true - roles: - - control - -- hosts: database - become: true - roles: - - mysql - -- hosts: loadbalancer - become: true - roles: - - nginx - -- hosts: webserver - become: true - roles: - - apache2 - - demo_app - -- hosts: loadbalancer - become: true - tasks: - - name: verify nginx service - command: service nginx status - - - name: verify nginx is listening on 80 - wait_for: port=80 timeout=1 - -- hosts: webserver - become: true - tasks: - - name: verify apache2 service - command: service apache2 status - - - name: verify apache2 is listening on 80 - wait_for: port=80 timeout=1 - -- hosts: database - become: true - tasks: - - name: verify mysql service - command: service mysql status - - - name: verify mysql is listening on 3306 - wait_for: port=3306 timeout=1 - -- hosts: control - tasks: - - name: verify end-to-end index response - uri: url=http://{{item}} return_content=yes - with_items: "{{ groups.loadbalancer }}" - register: lb_index - - - fail: msg="index failed to return content" - when: "'Hello, from sunny' not in item.content" - with_items: "{{lb_index.results}}" - - - name: verify end-to-end db response - uri: url=http://{{item}}/db return_content=yes - with_items: "{{ groups.loadbalancer }}" - register: lb_db - - - fail: msg="db failed to return content" - when: "'Database Connected from' not in item.content" - with_items: "{{lb_db.results}}" - -- hosts: loadbalancer - tasks: - - name: verify backend index response - uri: url=http://{{item}} return_content=yes - with_items: "{{ groups.webserver }}" - register: app_index - - - fail: msg="index failed to return content" - when: "'Hello, from sunny' not in item.content" - with_items: "{{app_index.results}}" - - - name: verify backend db response - uri: url=http://{{item}}/db return_content=yes - with_items: "{{ groups.webserver }}" - register: app_db - - - fail: msg="db failed to return content" - when: "'Database Connected from' not in item.content" - with_items: "{{app_db.results}}" diff --git a/examples/015_roles/stack_status.yml b/examples/015_roles/stack_status.yml deleted file mode 100644 index 451221d..0000000 --- a/examples/015_roles/stack_status.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -- hosts: loadbalancer - become: true - tasks: - - name: verify nginx service - command: service nginx status - - - name: verify nginx is listening on 80 - wait_for: port=80 timeout=1 - -- hosts: webserver - become: true - tasks: - - name: verify apache2 service - command: service apache2 status - - - name: verify apache2 is listening on 80 - wait_for: port=80 timeout=1 - -- hosts: database - become: true - tasks: - - name: verify mysql service - command: service mysql status - - - name: verify mysql is listening on 3306 - wait_for: port=3306 timeout=1 - -- hosts: control - tasks: - - name: verify end-to-end index response - uri: url=http://{{item}} return_content=yes - with_items: "{{ groups.loadbalancer }}" - register: lb_index - - - fail: msg="index failed to return content" - when: "'Hello, from sunny' not in item.content" - with_items: "{{lb_index.results}}" - - - name: verify end-to-end db response - uri: url=http://{{item}}/db return_content=yes - with_items: "{{ groups.loadbalancer }}" - register: lb_db - - - fail: msg="db failed to return content" - when: "'Database Connected from' not in item.content" - with_items: "{{lb_db.results}}" - -- hosts: loadbalancer - tasks: - - name: verify backend index response - uri: url=http://{{item}} return_content=yes - with_items: "{{ groups.webserver }}" - register: app_index - - - fail: msg="index failed to return content" - when: "'Hello, from sunny' not in item.content" - with_items: "{{app_index.results}}" - - - name: verify backend db response - uri: url=http://{{item}}/db return_content=yes - with_items: "{{ groups.webserver }}" - register: app_db - - - fail: msg="db failed to return content" - when: "'Database Connected from' not in item.content" - with_items: "{{app_db.results}}" diff --git a/examples/015_roles/templates/nginx.conf.j2 b/examples/015_roles/templates/nginx.conf.j2 deleted file mode 100644 index 4b477b6..0000000 --- a/examples/015_roles/templates/nginx.conf.j2 +++ /dev/null @@ -1,13 +0,0 @@ -upstream demo { -{% for server in groups.webserver %} - server {{ server }}; -{% endfor %} -} - -server { - listen 80; - - location / { - proxy_pass http://demo; - } -} From 581e3b2a9f184b08dcc8ab322485449dca01aa2c Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 14:35:38 +0100 Subject: [PATCH 07/10] Renames roles --- examples/015_1_roles/playbooks/hostname.yml | 5 ++ .../015_1_roles/playbooks/stack_restart.yml | 33 +++++++ .../015_1_roles/roles/apache2/.travis.yml | 29 ++++++ examples/015_1_roles/roles/apache2/README.md | 38 ++++++++ .../roles/apache2/defaults/main.yml | 2 + .../roles/apache2/handlers/main.yml | 4 + .../015_1_roles/roles/apache2/meta/main.yml | 52 +++++++++++ .../015_1_roles/roles/apache2/tasks/main.yml | 21 +++++ .../015_1_roles/roles/apache2/tests/inventory | 2 + .../015_1_roles/roles/apache2/tests/test.yml | 5 ++ .../015_1_roles/roles/apache2/vars/main.yml | 2 + .../015_1_roles/roles/control/.travis.yml | 29 ++++++ examples/015_1_roles/roles/control/README.md | 38 ++++++++ .../roles/control/defaults/main.yml | 2 + .../roles/control/handlers/main.yml | 2 + .../015_1_roles/roles/control/meta/main.yml | 52 +++++++++++ .../015_1_roles/roles/control/tasks/main.yml | 7 ++ .../015_1_roles/roles/control/tests/inventory | 2 + .../015_1_roles/roles/control/tests/test.yml | 5 ++ .../015_1_roles/roles/control/vars/main.yml | 2 + .../015_1_roles/roles/demo_app/.travis.yml | 29 ++++++ examples/015_1_roles/roles/demo_app/README.md | 38 ++++++++ .../roles/demo_app/defaults/main.yml | 2 + .../roles/demo_app/files/demo/app/demo.py | 20 +++++ .../roles/demo_app/files/demo/app/demo.wsgi | 10 +++ .../demo_app/files/demo/app/requirements.txt | 9 ++ .../roles/demo_app/files/demo/demo.conf | 11 +++ .../roles/demo_app/handlers/main.yml | 4 + .../015_1_roles/roles/demo_app/meta/main.yml | 52 +++++++++++ .../015_1_roles/roles/demo_app/tasks/main.yml | 24 +++++ .../roles/demo_app/tests/inventory | 2 + .../015_1_roles/roles/demo_app/tests/test.yml | 5 ++ .../015_1_roles/roles/demo_app/vars/main.yml | 2 + examples/015_1_roles/roles/mysql/.travis.yml | 29 ++++++ examples/015_1_roles/roles/mysql/README.md | 38 ++++++++ .../015_1_roles/roles/mysql/defaults/main.yml | 2 + .../015_1_roles/roles/mysql/handlers/main.yml | 4 + .../015_1_roles/roles/mysql/meta/main.yml | 52 +++++++++++ .../015_1_roles/roles/mysql/tasks/main.yml | 25 ++++++ .../015_1_roles/roles/mysql/tests/inventory | 2 + .../015_1_roles/roles/mysql/tests/test.yml | 5 ++ .../015_1_roles/roles/mysql/vars/main.yml | 2 + examples/015_1_roles/roles/nginx/.travis.yml | 29 ++++++ examples/015_1_roles/roles/nginx/README.md | 38 ++++++++ .../015_1_roles/roles/nginx/defaults/main.yml | 2 + .../015_1_roles/roles/nginx/handlers/main.yml | 4 + .../015_1_roles/roles/nginx/meta/main.yml | 52 +++++++++++ .../015_1_roles/roles/nginx/tasks/main.yml | 19 ++++ .../roles/nginx/templates/nginx.conf.j2 | 13 +++ .../015_1_roles/roles/nginx/tests/inventory | 2 + .../015_1_roles/roles/nginx/tests/test.yml | 5 ++ .../015_1_roles/roles/nginx/vars/main.yml | 2 + examples/015_1_roles/roles/status/.travis.yml | 29 ++++++ examples/015_1_roles/roles/status/README.md | 38 ++++++++ .../roles/status/defaults/main.yml | 2 + .../roles/status/handlers/main.yml | 2 + .../015_1_roles/roles/status/meta/main.yml | 52 +++++++++++ .../015_1_roles/roles/status/tests/inventory | 2 + .../015_1_roles/roles/status/tests/test.yml | 5 ++ .../015_1_roles/roles/status/vars/main.yml | 2 + examples/015_1_roles/site.yml | 88 +++++++++++++++++++ examples/015_1_roles/stack_status.yml | 67 ++++++++++++++ examples/015_1_roles/templates/nginx.conf.j2 | 13 +++ 63 files changed, 1165 insertions(+) create mode 100644 examples/015_1_roles/playbooks/hostname.yml create mode 100644 examples/015_1_roles/playbooks/stack_restart.yml create mode 100644 examples/015_1_roles/roles/apache2/.travis.yml create mode 100644 examples/015_1_roles/roles/apache2/README.md create mode 100644 examples/015_1_roles/roles/apache2/defaults/main.yml create mode 100644 examples/015_1_roles/roles/apache2/handlers/main.yml create mode 100644 examples/015_1_roles/roles/apache2/meta/main.yml create mode 100644 examples/015_1_roles/roles/apache2/tasks/main.yml create mode 100644 examples/015_1_roles/roles/apache2/tests/inventory create mode 100644 examples/015_1_roles/roles/apache2/tests/test.yml create mode 100644 examples/015_1_roles/roles/apache2/vars/main.yml create mode 100644 examples/015_1_roles/roles/control/.travis.yml create mode 100644 examples/015_1_roles/roles/control/README.md create mode 100644 examples/015_1_roles/roles/control/defaults/main.yml create mode 100644 examples/015_1_roles/roles/control/handlers/main.yml create mode 100644 examples/015_1_roles/roles/control/meta/main.yml create mode 100644 examples/015_1_roles/roles/control/tasks/main.yml create mode 100644 examples/015_1_roles/roles/control/tests/inventory create mode 100644 examples/015_1_roles/roles/control/tests/test.yml create mode 100644 examples/015_1_roles/roles/control/vars/main.yml create mode 100644 examples/015_1_roles/roles/demo_app/.travis.yml create mode 100644 examples/015_1_roles/roles/demo_app/README.md create mode 100644 examples/015_1_roles/roles/demo_app/defaults/main.yml create mode 100644 examples/015_1_roles/roles/demo_app/files/demo/app/demo.py create mode 100644 examples/015_1_roles/roles/demo_app/files/demo/app/demo.wsgi create mode 100644 examples/015_1_roles/roles/demo_app/files/demo/app/requirements.txt create mode 100644 examples/015_1_roles/roles/demo_app/files/demo/demo.conf create mode 100644 examples/015_1_roles/roles/demo_app/handlers/main.yml create mode 100644 examples/015_1_roles/roles/demo_app/meta/main.yml create mode 100644 examples/015_1_roles/roles/demo_app/tasks/main.yml create mode 100644 examples/015_1_roles/roles/demo_app/tests/inventory create mode 100644 examples/015_1_roles/roles/demo_app/tests/test.yml create mode 100644 examples/015_1_roles/roles/demo_app/vars/main.yml create mode 100644 examples/015_1_roles/roles/mysql/.travis.yml create mode 100644 examples/015_1_roles/roles/mysql/README.md create mode 100644 examples/015_1_roles/roles/mysql/defaults/main.yml create mode 100644 examples/015_1_roles/roles/mysql/handlers/main.yml create mode 100644 examples/015_1_roles/roles/mysql/meta/main.yml create mode 100644 examples/015_1_roles/roles/mysql/tasks/main.yml create mode 100644 examples/015_1_roles/roles/mysql/tests/inventory create mode 100644 examples/015_1_roles/roles/mysql/tests/test.yml create mode 100644 examples/015_1_roles/roles/mysql/vars/main.yml create mode 100644 examples/015_1_roles/roles/nginx/.travis.yml create mode 100644 examples/015_1_roles/roles/nginx/README.md create mode 100644 examples/015_1_roles/roles/nginx/defaults/main.yml create mode 100644 examples/015_1_roles/roles/nginx/handlers/main.yml create mode 100644 examples/015_1_roles/roles/nginx/meta/main.yml create mode 100644 examples/015_1_roles/roles/nginx/tasks/main.yml create mode 100644 examples/015_1_roles/roles/nginx/templates/nginx.conf.j2 create mode 100644 examples/015_1_roles/roles/nginx/tests/inventory create mode 100644 examples/015_1_roles/roles/nginx/tests/test.yml create mode 100644 examples/015_1_roles/roles/nginx/vars/main.yml create mode 100644 examples/015_1_roles/roles/status/.travis.yml create mode 100644 examples/015_1_roles/roles/status/README.md create mode 100644 examples/015_1_roles/roles/status/defaults/main.yml create mode 100644 examples/015_1_roles/roles/status/handlers/main.yml create mode 100644 examples/015_1_roles/roles/status/meta/main.yml create mode 100644 examples/015_1_roles/roles/status/tests/inventory create mode 100644 examples/015_1_roles/roles/status/tests/test.yml create mode 100644 examples/015_1_roles/roles/status/vars/main.yml create mode 100644 examples/015_1_roles/site.yml create mode 100644 examples/015_1_roles/stack_status.yml create mode 100644 examples/015_1_roles/templates/nginx.conf.j2 diff --git a/examples/015_1_roles/playbooks/hostname.yml b/examples/015_1_roles/playbooks/hostname.yml new file mode 100644 index 0000000..a1a3ad6 --- /dev/null +++ b/examples/015_1_roles/playbooks/hostname.yml @@ -0,0 +1,5 @@ +--- + - hosts: all + tasks: + - name: get server hostname + command: hostname diff --git a/examples/015_1_roles/playbooks/stack_restart.yml b/examples/015_1_roles/playbooks/stack_restart.yml new file mode 100644 index 0000000..b55de3d --- /dev/null +++ b/examples/015_1_roles/playbooks/stack_restart.yml @@ -0,0 +1,33 @@ +--- +# Bring stack down +- hosts: loadbalancer + become: true + tasks: + - service: name=nginx state=stopped + - wait_for: port=80 state=drained + +- hosts: webserver + become: true + tasks: + - service: name=apache2 state=stopped + - wait_for: port=80 state=stopped + +# Restart mysql +- hosts: database + become: true + tasks: + - service: name=mysql state=restarted + - wait_for: port=3306 state=started + +# Bring stack up +- hosts: webserver + become: true + tasks: + - service: name=apache2 state=started + - wait_for: port=80 + +- hosts: loadbalancer + become: true + tasks: + - service: name=nginx state=started + - wait_for: port=80 diff --git a/examples/015_1_roles/roles/apache2/.travis.yml b/examples/015_1_roles/roles/apache2/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/examples/015_1_roles/roles/apache2/.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/examples/015_1_roles/roles/apache2/README.md b/examples/015_1_roles/roles/apache2/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/015_1_roles/roles/apache2/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_1_roles/roles/apache2/defaults/main.yml b/examples/015_1_roles/roles/apache2/defaults/main.yml new file mode 100644 index 0000000..0381169 --- /dev/null +++ b/examples/015_1_roles/roles/apache2/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for apache2 diff --git a/examples/015_1_roles/roles/apache2/handlers/main.yml b/examples/015_1_roles/roles/apache2/handlers/main.yml new file mode 100644 index 0000000..faa75e1 --- /dev/null +++ b/examples/015_1_roles/roles/apache2/handlers/main.yml @@ -0,0 +1,4 @@ +# handlers file for apache2 +--- +- name: restart apache2 + service: name=apache2 state=restarted diff --git a/examples/015_1_roles/roles/apache2/meta/main.yml b/examples/015_1_roles/roles/apache2/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/examples/015_1_roles/roles/apache2/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/examples/015_1_roles/roles/apache2/tasks/main.yml b/examples/015_1_roles/roles/apache2/tasks/main.yml new file mode 100644 index 0000000..f06f2c1 --- /dev/null +++ b/examples/015_1_roles/roles/apache2/tasks/main.yml @@ -0,0 +1,21 @@ +# tasks file for apache2 +--- +- name: install web components + apt: name={{item}} state=present update_cache=yes + with_items: + - apache2 + - libapache2-mod-wsgi-py3 + - python-pip-whl + - python3-virtualenv + - python3-mysqldb + +- name: ensure mod_wsgi enabled + apache2_module: state=present name=wsgi + notify: restart apache2 + +- name: de-activate default apache site + file: path=/etc/apache2/sites-enabled/000-default.conf state=absent + notify: restart apache2 + +- name: ensure apache2 started + service: name=apache2 state=started enabled=yes diff --git a/examples/015_1_roles/roles/apache2/tests/inventory b/examples/015_1_roles/roles/apache2/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/examples/015_1_roles/roles/apache2/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/examples/015_1_roles/roles/apache2/tests/test.yml b/examples/015_1_roles/roles/apache2/tests/test.yml new file mode 100644 index 0000000..7d2d6da --- /dev/null +++ b/examples/015_1_roles/roles/apache2/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - apache2 diff --git a/examples/015_1_roles/roles/apache2/vars/main.yml b/examples/015_1_roles/roles/apache2/vars/main.yml new file mode 100644 index 0000000..5d23ceb --- /dev/null +++ b/examples/015_1_roles/roles/apache2/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for apache2 diff --git a/examples/015_1_roles/roles/control/.travis.yml b/examples/015_1_roles/roles/control/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/examples/015_1_roles/roles/control/.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/examples/015_1_roles/roles/control/README.md b/examples/015_1_roles/roles/control/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/015_1_roles/roles/control/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_1_roles/roles/control/defaults/main.yml b/examples/015_1_roles/roles/control/defaults/main.yml new file mode 100644 index 0000000..9fe52bd --- /dev/null +++ b/examples/015_1_roles/roles/control/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for control diff --git a/examples/015_1_roles/roles/control/handlers/main.yml b/examples/015_1_roles/roles/control/handlers/main.yml new file mode 100644 index 0000000..4136893 --- /dev/null +++ b/examples/015_1_roles/roles/control/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for control diff --git a/examples/015_1_roles/roles/control/meta/main.yml b/examples/015_1_roles/roles/control/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/examples/015_1_roles/roles/control/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/examples/015_1_roles/roles/control/tasks/main.yml b/examples/015_1_roles/roles/control/tasks/main.yml new file mode 100644 index 0000000..93318e3 --- /dev/null +++ b/examples/015_1_roles/roles/control/tasks/main.yml @@ -0,0 +1,7 @@ +# tasks file for control +--- +- name: install tools + apt: name={{item}} state=present update_cache=yes + with_items: + - curl + - python-httplib2 diff --git a/examples/015_1_roles/roles/control/tests/inventory b/examples/015_1_roles/roles/control/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/examples/015_1_roles/roles/control/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/examples/015_1_roles/roles/control/tests/test.yml b/examples/015_1_roles/roles/control/tests/test.yml new file mode 100644 index 0000000..1a668ab --- /dev/null +++ b/examples/015_1_roles/roles/control/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - control diff --git a/examples/015_1_roles/roles/control/vars/main.yml b/examples/015_1_roles/roles/control/vars/main.yml new file mode 100644 index 0000000..eadc8b6 --- /dev/null +++ b/examples/015_1_roles/roles/control/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for control diff --git a/examples/015_1_roles/roles/demo_app/.travis.yml b/examples/015_1_roles/roles/demo_app/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/.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/examples/015_1_roles/roles/demo_app/README.md b/examples/015_1_roles/roles/demo_app/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_1_roles/roles/demo_app/defaults/main.yml b/examples/015_1_roles/roles/demo_app/defaults/main.yml new file mode 100644 index 0000000..914e957 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for demo_app diff --git a/examples/015_1_roles/roles/demo_app/files/demo/app/demo.py b/examples/015_1_roles/roles/demo_app/files/demo/app/demo.py new file mode 100644 index 0000000..f093790 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/files/demo/app/demo.py @@ -0,0 +1,20 @@ +from flask import Flask +from flask_sqlalchemy import SQLAlchemy +import os, socket + +app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URI'] +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +db = SQLAlchemy(app) +hostname = socket.gethostname() + +@app.route('/') +def index(): + return 'Hello, from sunny %s!\n' % hostname + +@app.route('/db') +def dbtest(): + return 'Database Connected from %s!\n' % hostname + +if __name__ == '__main__': + app.run() \ No newline at end of file diff --git a/examples/015_1_roles/roles/demo_app/files/demo/app/demo.wsgi b/examples/015_1_roles/roles/demo_app/files/demo/app/demo.wsgi new file mode 100644 index 0000000..0b81ee5 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/files/demo/app/demo.wsgi @@ -0,0 +1,10 @@ +activate_this = '/var/www/demo/.venv/bin/activate_this.py' +exec(open(activate_this).read(), {'__file__': activate_this}) + +import os +os.environ['DATABASE_URI'] = 'mysql://demo:demo@db01/demo' + +import sys +sys.path.insert(0, '/var/www/demo') + +from demo import app as application \ No newline at end of file diff --git a/examples/015_1_roles/roles/demo_app/files/demo/app/requirements.txt b/examples/015_1_roles/roles/demo_app/files/demo/app/requirements.txt new file mode 100644 index 0000000..d51b4ef --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/files/demo/app/requirements.txt @@ -0,0 +1,9 @@ +click==7.1.2 +Flask==1.1.4 +Flask-SQLAlchemy==2.5.1 +greenlet==1.1.2 +itsdangerous==1.1.0 +Jinja2==2.11.3 +MarkupSafe==2.0.1 +SQLAlchemy==1.4.32 +Werkzeug==1.0.1 \ No newline at end of file diff --git a/examples/015_1_roles/roles/demo_app/files/demo/demo.conf b/examples/015_1_roles/roles/demo_app/files/demo/demo.conf new file mode 100644 index 0000000..ac7b9e2 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/files/demo/demo.conf @@ -0,0 +1,11 @@ + + WSGIDaemonProcess demo threads=5 + WSGIScriptAlias / /var/www/demo/demo.wsgi + + + WSGIProcessGroup demo + WSGIApplicationGroup %{GLOBAL} + Order deny,allow + Allow from all + + diff --git a/examples/015_1_roles/roles/demo_app/handlers/main.yml b/examples/015_1_roles/roles/demo_app/handlers/main.yml new file mode 100644 index 0000000..0ff1f25 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/handlers/main.yml @@ -0,0 +1,4 @@ +# handlers file for demo_app +--- +- name: restart apache2 + service: name=apache2 state=restarted diff --git a/examples/015_1_roles/roles/demo_app/meta/main.yml b/examples/015_1_roles/roles/demo_app/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/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/examples/015_1_roles/roles/demo_app/tasks/main.yml b/examples/015_1_roles/roles/demo_app/tasks/main.yml new file mode 100644 index 0000000..e1dcc64 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/tasks/main.yml @@ -0,0 +1,24 @@ +# tasks file for demo_app +--- +- name: install web components + apt: name={{item}} state=present update_cache=yes + with_items: + - python-pip-whl + - python3-virtualenv + - python3-mysqldb + +- name: copy demo app source + copy: src=files/demo/app/ dest=/var/www/demo mode=0755 + notify: restart apache2 + +- name: copy apache virtual host config + copy: src=files/demo/demo.conf dest=/etc/apache2/sites-available mode=0755 + notify: restart apache2 + +- name: setup python virtualenv + pip: requirements=/var/www/demo/requirements.txt virtualenv=/var/www/demo/.venv + notify: restart apache2 + +- name: activate demo apache site + file: src=/etc/apache2/sites-available/demo.conf dest=/etc/apache2/sites-enabled/demo.conf state=link + notify: restart apache2 diff --git a/examples/015_1_roles/roles/demo_app/tests/inventory b/examples/015_1_roles/roles/demo_app/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/examples/015_1_roles/roles/demo_app/tests/test.yml b/examples/015_1_roles/roles/demo_app/tests/test.yml new file mode 100644 index 0000000..2b0cbd9 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - demo_app diff --git a/examples/015_1_roles/roles/demo_app/vars/main.yml b/examples/015_1_roles/roles/demo_app/vars/main.yml new file mode 100644 index 0000000..52fb613 --- /dev/null +++ b/examples/015_1_roles/roles/demo_app/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for demo_app diff --git a/examples/015_1_roles/roles/mysql/.travis.yml b/examples/015_1_roles/roles/mysql/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/examples/015_1_roles/roles/mysql/.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/examples/015_1_roles/roles/mysql/README.md b/examples/015_1_roles/roles/mysql/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/015_1_roles/roles/mysql/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_1_roles/roles/mysql/defaults/main.yml b/examples/015_1_roles/roles/mysql/defaults/main.yml new file mode 100644 index 0000000..e9ebcba --- /dev/null +++ b/examples/015_1_roles/roles/mysql/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for mysql diff --git a/examples/015_1_roles/roles/mysql/handlers/main.yml b/examples/015_1_roles/roles/mysql/handlers/main.yml new file mode 100644 index 0000000..68cccce --- /dev/null +++ b/examples/015_1_roles/roles/mysql/handlers/main.yml @@ -0,0 +1,4 @@ +# handlers file for mysql +--- +- name: restart mysql + service: name=mysql state=restarted diff --git a/examples/015_1_roles/roles/mysql/meta/main.yml b/examples/015_1_roles/roles/mysql/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/examples/015_1_roles/roles/mysql/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/examples/015_1_roles/roles/mysql/tasks/main.yml b/examples/015_1_roles/roles/mysql/tasks/main.yml new file mode 100644 index 0000000..c6e1e59 --- /dev/null +++ b/examples/015_1_roles/roles/mysql/tasks/main.yml @@ -0,0 +1,25 @@ +# tasks file for mysql +--- +- name: install tools + apt: name={{item}} state=present update_cache=yes + with_items: + - python3-mysqldb + +- name: install mysql-server + apt: name=mysql-server state=present update_cache=yes + +- name: chmod cnf + command: chmod 777 /etc/mysql/my.cnf + +- name: ensure mysql listening on all ports + lineinfile: dest=/etc/mysql/my.cnf regexp=^bind-address line="bind-address = 0.0.0.0" + notify: restart mysql + +- name: ensure mysql started + service: name=mysql state=started enabled=yes + +- name: create demo database + mysql_db: name=demo state=present + +- name: create demo user + mysql_user: name=demo password=demo priv=demo.*:ALL host='%' state=present diff --git a/examples/015_1_roles/roles/mysql/tests/inventory b/examples/015_1_roles/roles/mysql/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/examples/015_1_roles/roles/mysql/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/examples/015_1_roles/roles/mysql/tests/test.yml b/examples/015_1_roles/roles/mysql/tests/test.yml new file mode 100644 index 0000000..15feaa1 --- /dev/null +++ b/examples/015_1_roles/roles/mysql/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - mysql diff --git a/examples/015_1_roles/roles/mysql/vars/main.yml b/examples/015_1_roles/roles/mysql/vars/main.yml new file mode 100644 index 0000000..a79bfed --- /dev/null +++ b/examples/015_1_roles/roles/mysql/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for mysql diff --git a/examples/015_1_roles/roles/nginx/.travis.yml b/examples/015_1_roles/roles/nginx/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/.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/examples/015_1_roles/roles/nginx/README.md b/examples/015_1_roles/roles/nginx/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_1_roles/roles/nginx/defaults/main.yml b/examples/015_1_roles/roles/nginx/defaults/main.yml new file mode 100644 index 0000000..78c8c76 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for nginx diff --git a/examples/015_1_roles/roles/nginx/handlers/main.yml b/examples/015_1_roles/roles/nginx/handlers/main.yml new file mode 100644 index 0000000..09669a2 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/handlers/main.yml @@ -0,0 +1,4 @@ +# handlers file for nginx +--- +- name: restart nginx + service: name=nginx state=restarted diff --git a/examples/015_1_roles/roles/nginx/meta/main.yml b/examples/015_1_roles/roles/nginx/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/examples/015_1_roles/roles/nginx/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/examples/015_1_roles/roles/nginx/tasks/main.yml b/examples/015_1_roles/roles/nginx/tasks/main.yml new file mode 100644 index 0000000..15b552d --- /dev/null +++ b/examples/015_1_roles/roles/nginx/tasks/main.yml @@ -0,0 +1,19 @@ +# tasks file for nginx +--- +- name: install nginx + apt: name=nginx state=present update_cache=yes + +- name: configure nginx site + template: src=nginx.conf.j2 dest=/etc/nginx/sites-available/demo mode=0644 + notify: restart nginx + +- name: de-activate default nginx site + file: path=/etc/nginx/sites-enabled/default state=absent + notify: restart nginx + +- name: activate demo nginx site + file: src=/etc/nginx/sites-available/demo dest=/etc/nginx/sites-enabled/demo state=link + notify: restart nginx + +- name: ensure nginx started + service: name=nginx state=started enabled=yes diff --git a/examples/015_1_roles/roles/nginx/templates/nginx.conf.j2 b/examples/015_1_roles/roles/nginx/templates/nginx.conf.j2 new file mode 100644 index 0000000..4b477b6 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/templates/nginx.conf.j2 @@ -0,0 +1,13 @@ +upstream demo { +{% for server in groups.webserver %} + server {{ server }}; +{% endfor %} +} + +server { + listen 80; + + location / { + proxy_pass http://demo; + } +} diff --git a/examples/015_1_roles/roles/nginx/tests/inventory b/examples/015_1_roles/roles/nginx/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/examples/015_1_roles/roles/nginx/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/examples/015_1_roles/roles/nginx/tests/test.yml b/examples/015_1_roles/roles/nginx/tests/test.yml new file mode 100644 index 0000000..261c779 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - nginx diff --git a/examples/015_1_roles/roles/nginx/vars/main.yml b/examples/015_1_roles/roles/nginx/vars/main.yml new file mode 100644 index 0000000..d45faf6 --- /dev/null +++ b/examples/015_1_roles/roles/nginx/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for nginx diff --git a/examples/015_1_roles/roles/status/.travis.yml b/examples/015_1_roles/roles/status/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/examples/015_1_roles/roles/status/.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/examples/015_1_roles/roles/status/README.md b/examples/015_1_roles/roles/status/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/examples/015_1_roles/roles/status/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +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: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/examples/015_1_roles/roles/status/defaults/main.yml b/examples/015_1_roles/roles/status/defaults/main.yml new file mode 100644 index 0000000..af48236 --- /dev/null +++ b/examples/015_1_roles/roles/status/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for status diff --git a/examples/015_1_roles/roles/status/handlers/main.yml b/examples/015_1_roles/roles/status/handlers/main.yml new file mode 100644 index 0000000..ca3a957 --- /dev/null +++ b/examples/015_1_roles/roles/status/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for status diff --git a/examples/015_1_roles/roles/status/meta/main.yml b/examples/015_1_roles/roles/status/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/examples/015_1_roles/roles/status/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/examples/015_1_roles/roles/status/tests/inventory b/examples/015_1_roles/roles/status/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/examples/015_1_roles/roles/status/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/examples/015_1_roles/roles/status/tests/test.yml b/examples/015_1_roles/roles/status/tests/test.yml new file mode 100644 index 0000000..e6b10b3 --- /dev/null +++ b/examples/015_1_roles/roles/status/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - status diff --git a/examples/015_1_roles/roles/status/vars/main.yml b/examples/015_1_roles/roles/status/vars/main.yml new file mode 100644 index 0000000..7751cdd --- /dev/null +++ b/examples/015_1_roles/roles/status/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for status diff --git a/examples/015_1_roles/site.yml b/examples/015_1_roles/site.yml new file mode 100644 index 0000000..f596f9f --- /dev/null +++ b/examples/015_1_roles/site.yml @@ -0,0 +1,88 @@ +--- +- hosts: control + become: true + roles: + - control + +- hosts: database + become: true + roles: + - mysql + +- hosts: loadbalancer + become: true + roles: + - nginx + +- hosts: webserver + become: true + roles: + - apache2 + - demo_app + +- hosts: loadbalancer + become: true + tasks: + - name: verify nginx service + command: service nginx status + + - name: verify nginx is listening on 80 + wait_for: port=80 timeout=1 + +- hosts: webserver + become: true + tasks: + - name: verify apache2 service + command: service apache2 status + + - name: verify apache2 is listening on 80 + wait_for: port=80 timeout=1 + +- hosts: database + become: true + tasks: + - name: verify mysql service + command: service mysql status + + - name: verify mysql is listening on 3306 + wait_for: port=3306 timeout=1 + +- hosts: control + tasks: + - name: verify end-to-end index response + uri: url=http://{{item}} return_content=yes + with_items: "{{ groups.loadbalancer }}" + register: lb_index + + - fail: msg="index failed to return content" + when: "'Hello, from sunny' not in item.content" + with_items: "{{lb_index.results}}" + + - name: verify end-to-end db response + uri: url=http://{{item}}/db return_content=yes + with_items: "{{ groups.loadbalancer }}" + register: lb_db + + - fail: msg="db failed to return content" + when: "'Database Connected from' not in item.content" + with_items: "{{lb_db.results}}" + +- hosts: loadbalancer + tasks: + - name: verify backend index response + uri: url=http://{{item}} return_content=yes + with_items: "{{ groups.webserver }}" + register: app_index + + - fail: msg="index failed to return content" + when: "'Hello, from sunny' not in item.content" + with_items: "{{app_index.results}}" + + - name: verify backend db response + uri: url=http://{{item}}/db return_content=yes + with_items: "{{ groups.webserver }}" + register: app_db + + - fail: msg="db failed to return content" + when: "'Database Connected from' not in item.content" + with_items: "{{app_db.results}}" diff --git a/examples/015_1_roles/stack_status.yml b/examples/015_1_roles/stack_status.yml new file mode 100644 index 0000000..451221d --- /dev/null +++ b/examples/015_1_roles/stack_status.yml @@ -0,0 +1,67 @@ +--- +- hosts: loadbalancer + become: true + tasks: + - name: verify nginx service + command: service nginx status + + - name: verify nginx is listening on 80 + wait_for: port=80 timeout=1 + +- hosts: webserver + become: true + tasks: + - name: verify apache2 service + command: service apache2 status + + - name: verify apache2 is listening on 80 + wait_for: port=80 timeout=1 + +- hosts: database + become: true + tasks: + - name: verify mysql service + command: service mysql status + + - name: verify mysql is listening on 3306 + wait_for: port=3306 timeout=1 + +- hosts: control + tasks: + - name: verify end-to-end index response + uri: url=http://{{item}} return_content=yes + with_items: "{{ groups.loadbalancer }}" + register: lb_index + + - fail: msg="index failed to return content" + when: "'Hello, from sunny' not in item.content" + with_items: "{{lb_index.results}}" + + - name: verify end-to-end db response + uri: url=http://{{item}}/db return_content=yes + with_items: "{{ groups.loadbalancer }}" + register: lb_db + + - fail: msg="db failed to return content" + when: "'Database Connected from' not in item.content" + with_items: "{{lb_db.results}}" + +- hosts: loadbalancer + tasks: + - name: verify backend index response + uri: url=http://{{item}} return_content=yes + with_items: "{{ groups.webserver }}" + register: app_index + + - fail: msg="index failed to return content" + when: "'Hello, from sunny' not in item.content" + with_items: "{{app_index.results}}" + + - name: verify backend db response + uri: url=http://{{item}}/db return_content=yes + with_items: "{{ groups.webserver }}" + register: app_db + + - fail: msg="db failed to return content" + when: "'Database Connected from' not in item.content" + with_items: "{{app_db.results}}" diff --git a/examples/015_1_roles/templates/nginx.conf.j2 b/examples/015_1_roles/templates/nginx.conf.j2 new file mode 100644 index 0000000..4b477b6 --- /dev/null +++ b/examples/015_1_roles/templates/nginx.conf.j2 @@ -0,0 +1,13 @@ +upstream demo { +{% for server in groups.webserver %} + server {{ server }}; +{% endfor %} +} + +server { + listen 80; + + location / { + proxy_pass http://demo; + } +} From c98bfc32dde6b23d77376643977e463bfadac063 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 13:42:33 +0000 Subject: [PATCH 08/10] Deploy and stack status --- examples/015_2_roles/deploy.yml | 4 ++++ examples/015_2_roles/stack_status.yml | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 examples/015_2_roles/deploy.yml create mode 100644 examples/015_2_roles/stack_status.yml diff --git a/examples/015_2_roles/deploy.yml b/examples/015_2_roles/deploy.yml new file mode 100644 index 0000000..4569588 --- /dev/null +++ b/examples/015_2_roles/deploy.yml @@ -0,0 +1,4 @@ +# import_playbook soporta handlers correctamente. +# Por lo tanto, este playbook importa otros playbooks que contienen handlers. +- import_playbook: site.yml +- import_playbook: stack_status.yml diff --git a/examples/015_2_roles/stack_status.yml b/examples/015_2_roles/stack_status.yml new file mode 100644 index 0000000..01df995 --- /dev/null +++ b/examples/015_2_roles/stack_status.yml @@ -0,0 +1,27 @@ +--- +- hosts: loadbalancer + become: true + tasks: + - name: verify nginx service + command: service nginx status + + - name: verify nginx is listening on 80 + wait_for: port=80 timeout=3 + +- hosts: webserver + become: true + tasks: + - name: verify apache2 service + command: service apache2 status + + - name: verify apache2 is listening on 80 + wait_for: port=80 timeout=3 + +- hosts: database + become: true + tasks: + - name: verify mysql service + command: service mysql status + + - name: verify mysql is listening on 3306 + wait_for: port=3306 timeout=3 From 0a2c715f9756d05b1784b2ce94203148a4d108a8 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 18 Nov 2025 18:07:33 +0100 Subject: [PATCH 09/10] refactored --- vars-nginx.yml => training/vars-nginx.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename vars-nginx.yml => training/vars-nginx.yml (100%) diff --git a/vars-nginx.yml b/training/vars-nginx.yml similarity index 100% rename from vars-nginx.yml rename to training/vars-nginx.yml From d86474fe52d1d78b631b56e19c44f8867e9cf692 Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Wed, 19 Nov 2025 09:07:11 +0100 Subject: [PATCH 10/10] Removed ansible.sh where is not necessary --- Vagrantfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 9ea6272..1a22686 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -18,7 +18,6 @@ Vagrant.configure(2) do |config| database.vm.network "private_network", ip: "192.168.11.20" database.vm.hostname = "database" database.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" - database.vm.provision :shell, :path => "ansible.sh" database.vm.network "forwarded_port", guest: 80, host: 8081 # Redirección del puerto 80 database.vm.network "forwarded_port", guest: 3306, host: 3306 # Redirección del puerto MySQL database.vm.provider "virtualbox" do |vb| @@ -33,7 +32,6 @@ Vagrant.configure(2) do |config| loadbalancer.vm.network "private_network", ip: "192.168.11.30" loadbalancer.vm.hostname = "loadbalancer" loadbalancer.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" - loadbalancer.vm.provision :shell, :path => "ansible.sh" loadbalancer.vm.network "forwarded_port", guest: 80, host: 8080 # Redirección del puerto 80 loadbalancer.vm.network "forwarded_port", guest: 3306, host: 33061 # Redirección del puerto MySQL alternativo loadbalancer.vm.provider "virtualbox" do |vb| @@ -48,7 +46,6 @@ Vagrant.configure(2) do |config| webserver.vm.network "private_network", ip: "192.168.11.40" webserver.vm.hostname = "webserver" webserver.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" - webserver.vm.provision :shell, :path => "ansible.sh" webserver.vm.network "forwarded_port", guest: 80, host: 80 # Redirección del puerto 80 webserver.vm.network "forwarded_port", guest: 3306, host: 33062 # Redirección del puerto MySQL alternativo webserver.vm.provider "virtualbox" do |vb|