Initial commit
This commit is contained in:
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# ansible-template
|
||||
|
||||
Template repo for basic Ansible deployment.
|
||||
1
app-name/.env
Normal file
1
app-name/.env
Normal file
@@ -0,0 +1 @@
|
||||
RANDOM=value
|
||||
4
app-name/compose.yml
Normal file
4
app-name/compose.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
services:
|
||||
app:
|
||||
|
||||
database:
|
||||
7
hosts.yml
Normal file
7
hosts.yml
Normal 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
72
main.yml
Normal 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
5
requirements.yml
Normal 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
|
||||
Reference in New Issue
Block a user