Track the nginx-menu playbook as it stands
It has been serving three menu Sites from an untracked directory, so today's state was not reproducible or revertible.
This commit is contained in:
1 parent
b7c5997274
commit
e54dd127ed
8 files changed
+162
No files matched your search
@@ -0,0 +1,24 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name {{ host }};
|
||||
|
||||
location /bar {
|
||||
root /var/lib/menu.greatbear.in;
|
||||
index index.html;
|
||||
}
|
||||
|
||||
location /food {
|
||||
root /var/lib/menu.greatbear.in;
|
||||
index index.html;
|
||||
}
|
||||
|
||||
location /delivery {
|
||||
root /var/lib/menu.greatbear.in;
|
||||
index index.html;
|
||||
}
|
||||
|
||||
location /qr {
|
||||
root /var/lib/menu.greatbear.in;
|
||||
index index.html;
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
---
|
||||
- hosts: all
|
||||
become: true
|
||||
vars_files:
|
||||
- vars/default.yml
|
||||
|
||||
roles:
|
||||
- network
|
||||
- nginx
|
||||
- caddy
|
||||
@@ -0,0 +1,46 @@
|
||||
# Docker on Ubuntu 18.04
|
||||
|
||||
This playbook will install Docker an Ubuntu 18.04 machine, as explained in the guide on
|
||||
[How to Use Ansible to Install and Set Up Docker on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-docker-on-ubuntu-18-04).
|
||||
A number of containers will be created with the options specified in the `vars/default.yml` variable file.
|
||||
|
||||
## Settings
|
||||
|
||||
- `create_containers`: number of containers to create.
|
||||
- `default_container_name`: default name for new containers.
|
||||
- `default_container_image`: default image for new containers.
|
||||
- `default_container_command`: default command to run on new containers.
|
||||
|
||||
|
||||
## Running this Playbook
|
||||
|
||||
Quick Steps:
|
||||
|
||||
### 1. Obtain the playbook
|
||||
```shell
|
||||
git clone https://github.com/do-community/ansible-playbooks.git
|
||||
cd ansible-playbooks/docker_ubuntu1804
|
||||
```
|
||||
|
||||
### 2. Customize Options
|
||||
|
||||
```shell
|
||||
nano vars/default.yml
|
||||
```
|
||||
|
||||
```yml
|
||||
#vars/default.yml
|
||||
---
|
||||
create_containers: 4
|
||||
default_container_name: docker
|
||||
default_container_image: ubuntu
|
||||
default_container_command: sleep 1d
|
||||
```
|
||||
|
||||
### 3. Run the Playbook
|
||||
|
||||
```command
|
||||
ansible-playbook -l [target] -i [inventory file] -u [remote user] playbook.yml
|
||||
```
|
||||
|
||||
For more information on how to run this Ansible setup, please check this guide: [How to Use Ansible to Install and Set Up Docker on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-docker-on-ubuntu-18-04).
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
# Handlers for Caddy role
|
||||
- name: Reload Caddy configuration
|
||||
ansible.builtin.command: "docker exec -w /etc/caddy {{ caddy_container }} caddy reload"
|
||||
listen: "Reload Caddy"
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
- name: Read current Caddyfile
|
||||
ansible.builtin.slurp:
|
||||
path: "{{ caddyfile_path }}"
|
||||
register: caddyfile_raw
|
||||
|
||||
- name: Decode Caddyfile content
|
||||
set_fact:
|
||||
caddyfile_content: "{{ caddyfile_raw['content'] | b64decode }}"
|
||||
|
||||
- name: Check if snippet already exists
|
||||
set_fact:
|
||||
snippet_present: "{{ snippet_block in caddyfile_content }}"
|
||||
|
||||
- name: Add snippet if missing
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ caddyfile_path }}"
|
||||
marker: "# {mark} Ansible managed Caddy snippet for {{ host }}"
|
||||
block: "{{ snippet_block }}"
|
||||
create: yes
|
||||
when: not snippet_present
|
||||
notify: "Reload Caddy"
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: "Ensure {{ docker_container }} Docker network exists"
|
||||
docker_network:
|
||||
name: "{{ docker_network }}"
|
||||
state: present
|
||||
connected:
|
||||
- "{{ caddy_container }}"
|
||||
appends: yes
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
# Tasks for Nginx role to serve static files
|
||||
- name: Pull Nginx image
|
||||
docker_image:
|
||||
name: "{{ image_name }}"
|
||||
source: pull
|
||||
force_source: yes
|
||||
|
||||
- name: Ensure Host Directory exist
|
||||
file:
|
||||
path: "{{ host_directory }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
|
||||
# - name: Upload the Nginx config file
|
||||
# template:
|
||||
# src: "files/nginx.conf.j2"
|
||||
# dest: "{{ host_directory }}/nginx.conf"
|
||||
|
||||
- name: Create caddy container
|
||||
docker_container:
|
||||
name: "{{ docker_container }}"
|
||||
image: "{{ image_name }}"
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
volumes:
|
||||
# - "{{ host_directory }}/nginx.conf:/etc/nginx/nginx.conf:ro"
|
||||
- "{{ host_directory }}:/usr/share/nginx/html:ro"
|
||||
networks:
|
||||
- name: "{{ docker_network }}"
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: hngmohali.com
|
||||
host: "menu.{{ title }}"
|
||||
|
||||
docker_container: "nginx-{{ host }}"
|
||||
image_name: nginx:alpine
|
||||
|
||||
caddy_container: caddy
|
||||
docker_network: "{{ host }}_net"
|
||||
|
||||
caddyfile_path: /var/lib/caddy/conf/Caddyfile
|
||||
snippet_block: |
|
||||
{{ host }} {
|
||||
reverse_proxy {{ docker_container }}:80
|
||||
}
|
||||
|
||||
host_directory: "/var/lib/{{ host }}"
|
||||
Reference in new issue
Block a user