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