diff --git a/ch4-role/lqvan/ansible.cfg b/ch4-role/lqvan/ansible.cfg new file mode 100644 index 0000000..9119ec0 --- /dev/null +++ b/ch4-role/lqvan/ansible.cfg @@ -0,0 +1,3 @@ +[defaults] +host_key_checking = False +inventory = inventory \ No newline at end of file diff --git a/ch4-role/lqvan/inventory/group_vars/centos.yaml b/ch4-role/lqvan/inventory/group_vars/centos.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ch4-role/lqvan/inventory/group_vars/ubuntu.yaml b/ch4-role/lqvan/inventory/group_vars/ubuntu.yaml new file mode 100644 index 0000000..b4a2c4f --- /dev/null +++ b/ch4-role/lqvan/inventory/group_vars/ubuntu.yaml @@ -0,0 +1 @@ +ansible_python_interpreter: /usr/bin/python3 \ No newline at end of file diff --git a/ch4-role/lqvan/inventory/hosts b/ch4-role/lqvan/inventory/hosts new file mode 100644 index 0000000..e02db0e --- /dev/null +++ b/ch4-role/lqvan/inventory/hosts @@ -0,0 +1,13 @@ +[ubuntu] +ubuntu11 ansible_host=192.168.100.11 +ubuntu12 ansible_host=192.168.100.12 + +[centos] +centos21 ansible_host=192.168.100.21 +centos22 ansible_host=192.168.100.22 + + +[linux:children] +ubuntu +centos + diff --git a/ch4-role/lqvan/roles/apache2/.travis.yml b/ch4-role/lqvan/roles/apache2/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/ch4-role/lqvan/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/ch4-role/lqvan/roles/apache2/README.md b/ch4-role/lqvan/roles/apache2/README.md new file mode 100644 index 0000000..cd433f4 --- /dev/null +++ b/ch4-role/lqvan/roles/apache2/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +apache2 + +Requirements +------------ + +N/A. + +Role Variables +-------------- + +foo: var for testing + +Dependencies +------------ + +N/A + +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: + - apache2 + +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/ch4-role/lqvan/roles/apache2/defaults/main.yml b/ch4-role/lqvan/roles/apache2/defaults/main.yml new file mode 100644 index 0000000..89d32e5 --- /dev/null +++ b/ch4-role/lqvan/roles/apache2/defaults/main.yml @@ -0,0 +1,11 @@ +--- +# defaults file for apache2 +welcome_user: lqvan +packages: + Debian: + - apache2 + RedHat: + - httpd +services: + Debian: apache2 + RedHat: httpd \ No newline at end of file diff --git a/ch4-role/lqvan/roles/apache2/handlers/main.yml b/ch4-role/lqvan/roles/apache2/handlers/main.yml new file mode 100644 index 0000000..16a5f9e --- /dev/null +++ b/ch4-role/lqvan/roles/apache2/handlers/main.yml @@ -0,0 +1,6 @@ +--- +# handlers file for apache2 +- name: Restart Apache + service: + name: "{{ services[ansible_os_family] }}" + state: restarted \ No newline at end of file diff --git a/ch4-role/lqvan/roles/apache2/meta/main.yml b/ch4-role/lqvan/roles/apache2/meta/main.yml new file mode 100644 index 0000000..b58005b --- /dev/null +++ b/ch4-role/lqvan/roles/apache2/meta/main.yml @@ -0,0 +1,62 @@ +galaxy_info: + author: Van LQ + description: Install Apache 2 + 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.9" + + # 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 + + platforms: + - name: "EL" + versions: + - "7" + - name: "Ubuntu" + versions: + - "bionic" + + + 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. + \ No newline at end of file diff --git a/ch4-role/lqvan/roles/apache2/tasks/main.yml b/ch4-role/lqvan/roles/apache2/tasks/main.yml new file mode 100644 index 0000000..04c1966 --- /dev/null +++ b/ch4-role/lqvan/roles/apache2/tasks/main.yml @@ -0,0 +1,21 @@ +--- +# tasks file for apache2 +- name: Install Apache + package: + name: "{{ packages[ansible_os_family] }}" + state: latest + +- name: Configuring service + service: + name: "{{ services[ansible_os_family] }}" + state: restarted + enabled: yes + +- name: Copy welcome page + template: + src: "templates/index.html.j2" + dest: "/var/www/html/index.html" + notify: Restart Apache + +- name: Force all notified handlers to run at this point, not waiting for normal sync points + meta: flush_handlers diff --git a/ch4-role/lqvan/roles/apache2/templates/index.html.j2 b/ch4-role/lqvan/roles/apache2/templates/index.html.j2 new file mode 100644 index 0000000..be2615c --- /dev/null +++ b/ch4-role/lqvan/roles/apache2/templates/index.html.j2 @@ -0,0 +1,8 @@ + +
+