commit 4694cbcb556a06b97d6e0dda48a2e6eb0735e387 Author: brock Date: Fri Aug 8 02:20:52 2025 +0000 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..9409790 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# ansible-template + +Template repo for basic Ansible deployment. \ No newline at end of file diff --git a/app-name/.env b/app-name/.env new file mode 100644 index 0000000..db65b31 --- /dev/null +++ b/app-name/.env @@ -0,0 +1 @@ +RANDOM=value diff --git a/app-name/compose.yml b/app-name/compose.yml new file mode 100644 index 0000000..cc10e19 --- /dev/null +++ b/app-name/compose.yml @@ -0,0 +1,4 @@ +services: + app: + + database: diff --git a/hosts.yml b/hosts.yml new file mode 100644 index 0000000..4076308 --- /dev/null +++ b/hosts.yml @@ -0,0 +1,7 @@ +all: + children: + server: + hosts: + app-name: + ansible_host: 192.168.1.x + ansible_user: ansible diff --git a/main.yml b/main.yml new file mode 100644 index 0000000..c01e05c --- /dev/null +++ b/main.yml @@ -0,0 +1,72 @@ +- name: Template Ansible project + hosts: servers + become: true + + vars: + app_name: "zabbix" + docker_users: + - "{{ ansible_user }}" + - brock + + pre_tasks: + - name: Make users passwordless for sudo in group wheel + lineinfile: + path: /etc/sudoers + state: present + regexp: '^%wheel' + line: '%wheel ALL=(ALL) NOPASSWD: ALL' + validate: 'visudo -cf %s' + + roles: + - name: geerlingguy.docker + + tasks: + - name: Install packages + ansible.builtin.package: + name: + - nfs-common + - python3-docker + state: present + tags: vpn + + - name: Mount an NFS volume + ansible.posix.mount: + src: 192.168.1.200:/mnt/data-02/share/web + path: /mnt/share + opts: "rw,sync,hard,nfsvers=3" + state: mounted + fstype: nfs + tags: mount-nfs + + - name: Create /opt/stacks + ansible.builtin.file: + path: "/opt/stacks" + state: directory + owner: "{{ ansible_user }}" + group: docker + mode: '0775' + + - name: "Create /opt/stacks/{{ app_name }}" + ansible.builtin.file: + path: "/opt/stacks/{{ app_name }}" + state: directory + owner: "{{ ansible_user }}" + group: docker + mode: '0775' + + - name: Copy compose stack + ansible.builtin.copy: + src: "./{{ app_name }}/" + dest: "/opt/stacks/{{ app_name }}" + owner: "{{ ansible_user }}" + mode: '0755' + tags: update-config + + - name: "Start {{ app_name }}" + community.docker.docker_compose_v2: + project_src: "/opt/stacks/{{ app_name }}" + recreate: always + pull: always + tags: + - update-config + - redeploy \ No newline at end of file diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..90890b9 --- /dev/null +++ b/requirements.yml @@ -0,0 +1,5 @@ +- name: geerlingguy.docker + src: https://github.com/geerlingguy/ansible-role-docker + +- name: community.docker + src: https://github.com/ansible-collections/community.docker