Initial commit

This commit is contained in:
2025-08-08 02:20:52 +00:00
commit 4694cbcb55
6 changed files with 92 additions and 0 deletions

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# ansible-template
Template repo for basic Ansible deployment.

1
app-name/.env Normal file
View File

@@ -0,0 +1 @@
RANDOM=value

4
app-name/compose.yml Normal file
View File

@@ -0,0 +1,4 @@
services:
app:
database:

7
hosts.yml Normal file
View File

@@ -0,0 +1,7 @@
all:
children:
server:
hosts:
app-name:
ansible_host: 192.168.1.x
ansible_user: ansible

72
main.yml Normal file
View File

@@ -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

5
requirements.yml Normal file
View File

@@ -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