Added: Readme
Added: Restart policy
This commit is contained in:
parent
518871ff16
commit
fc8a7795e6
74
README.md
Normal file
74
README.md
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# DO Community - Ansible Playbooks
|
||||||
|
|
||||||
|
A collection of minimalist Ansible playbooks for automating server setups, based on DigitalOcean's Community guides.
|
||||||
|
|
||||||
|
- [Initial Server Setup for Ubuntu 18.04](https://github.com/do-community/ansible-playbooks/tree/master/setup_ubuntu1804) *
|
||||||
|
- [Apache on Ubuntu 18.04](https://github.com/do-community/ansible-playbooks/tree/master/apache_ubuntu1804)
|
||||||
|
- [Postgres on Ubuntu 19.10](https://git.tanshu.com/tanshu/playbooks/src/branch/master/postgres)
|
||||||
|
- [Redis on Ubuntu 19.10](https://git.tanshu.com/tanshu/playbooks/src/branch/master/redis)
|
||||||
|
- [Bitwarden Ubuntu 19.10](https://git.tanshu.com/tanshu/playbooks/src/branch/master/bitwarden)
|
||||||
|
- [Gitea on Ubuntu 19.10](https://git.tanshu.com/tanshu/playbooks/src/branch/master/gitea)
|
||||||
|
|
||||||
|
_\*the Initial Server Setup should be your starting point for fresh servers._
|
||||||
|
|
||||||
|
## Playbook Structure
|
||||||
|
|
||||||
|
The playbooks contained in this repository were created for educational purposes, and should serve as a base for you to create your own playbooks and roles.
|
||||||
|
|
||||||
|
Although we opt to not use roles, our playbooks follow a distinctive structure to facilitate reuse while keeping them mostly self-contained and straightforward.
|
||||||
|
|
||||||
|
For instance, this is how the `lemp` playbook is structured:
|
||||||
|
|
||||||
|
```
|
||||||
|
lemp_ubuntu1804
|
||||||
|
├── files
|
||||||
|
│ ├── info.php.j2
|
||||||
|
│ └── nginx.conf.j2
|
||||||
|
├── vars
|
||||||
|
│ └── default.yml
|
||||||
|
├── playbook.yml
|
||||||
|
└── readme.md
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
- `files/`: directory containing templates and other files required by the playbook.
|
||||||
|
- `vars/`: directory to save variable files. A `default.yml` var file is included by default.
|
||||||
|
- `playbook.yml`: the playbook file.
|
||||||
|
- `readme.md`: instructions and links related to this playbook.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
To set up your Ansible environment, please follow our guide on [How to Install and Configure Ansible on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-18-04).
|
||||||
|
|
||||||
|
### Connection Test
|
||||||
|
|
||||||
|
From your local machine or Ansible control node, run:
|
||||||
|
|
||||||
|
```command
|
||||||
|
ansible all -m ping -u remote_user
|
||||||
|
```
|
||||||
|
|
||||||
|
If you're able to get a "pong" reply back from your node(s), your setup works as expected and you'll be able to run both ad-hoc commands and playbooks on your nodes, using Ansible.
|
||||||
|
|
||||||
|
## Guides
|
||||||
|
|
||||||
|
The following guides cover how to use the playbooks you'll find in this repository.
|
||||||
|
|
||||||
|
### Initial Server Setup
|
||||||
|
|
||||||
|
- [Initial Server Setup for Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-18-04)
|
||||||
|
|
||||||
|
Once you have executed the initial server setup, you can choose from any of the available server setup playbooks:
|
||||||
|
|
||||||
|
### Web Servers
|
||||||
|
- [Apache on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-apache-on-ubuntu-18-04)
|
||||||
|
- [LEMP (Linux, Nginx, MySQL, PHP) on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-lemp-on-ubuntu-18-04)
|
||||||
|
- [LAMP (Linux, Apache, MySQL, PHP) on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-lamp-on-ubuntu-18-04)
|
||||||
|
|
||||||
|
### Applications & CMSs
|
||||||
|
|
||||||
|
- [WordPress with LAMP on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-wordpress-with-lamp-on-ubuntu-18-04)
|
||||||
|
|
||||||
|
### Containers & K8s
|
||||||
|
- [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)
|
||||||
|
|
@ -18,6 +18,7 @@
|
|||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ container_image }}"
|
image: "{{ container_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
env:
|
env:
|
||||||
DATABASE_URL: "{{ db_url }}"
|
DATABASE_URL: "{{ db_url }}"
|
||||||
links: "postgres:db"
|
links: "postgres:db"
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ container_image }}"
|
image: "{{ container_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
env:
|
env:
|
||||||
USER_UID: "{{ getent_passwd[user][1] }}"
|
USER_UID: "{{ getent_passwd[user][1] }}"
|
||||||
USER_GID: "{{ getent_passwd[user][2] }}"
|
USER_GID: "{{ getent_passwd[user][2] }}"
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
user:
|
user:
|
||||||
name: "{{ user }}"
|
name: "{{ user }}"
|
||||||
comment: Git user
|
comment: Git user
|
||||||
create_home: no
|
create_home: yes
|
||||||
|
|
||||||
- name: Pull Gitea image
|
- name: Pull Gitea image
|
||||||
docker_image:
|
docker_image:
|
||||||
@ -29,6 +29,7 @@
|
|||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ container_image }}"
|
image: "{{ container_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
env:
|
env:
|
||||||
USER_UID: "{{ getent_passwd[user][1] }}"
|
USER_UID: "{{ getent_passwd[user][1] }}"
|
||||||
USER_GID: "{{ getent_passwd[user][2] }}"
|
USER_GID: "{{ getent_passwd[user][2] }}"
|
||||||
|
@ -3,6 +3,9 @@ server {
|
|||||||
listen 80;
|
listen 80;
|
||||||
server_name {{ http_host }};
|
server_name {{ http_host }};
|
||||||
|
|
||||||
|
# set max upload size
|
||||||
|
client_max_body_size 10G;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
|
|
||||||
proxy_set_header Host $host:$server_port;
|
proxy_set_header Host $host:$server_port;
|
||||||
|
@ -31,15 +31,16 @@
|
|||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ container_image }}"
|
image: "{{ container_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
env:
|
env:
|
||||||
POSTGRES_DB: "{{ db_name }}"
|
POSTGRES_DB: "{{ db_name }}"
|
||||||
POSTGRES_USER: "{{ db_user }}"
|
POSTGRES_USER: "{{ db_user }}"
|
||||||
POSTGRES_PASSWORD: "{{ db_pass }}"
|
POSTGRES_PASSWORD: "{{ db_pass }}"
|
||||||
POSTGRES_HOST: "{{ db_host }}"
|
POSTGRES_HOST: "{{ db_host }}"
|
||||||
REDIS_HOST: "redis"
|
# REDIS_HOST: "redis"
|
||||||
links:
|
links:
|
||||||
- "postgres:db"
|
- "postgres:db"
|
||||||
- "redis:redis"
|
# - "redis:redis"
|
||||||
published_ports:
|
published_ports:
|
||||||
- "9000:9000"
|
- "9000:9000"
|
||||||
volumes:
|
volumes:
|
||||||
@ -50,6 +51,7 @@
|
|||||||
name: cloud-web
|
name: cloud-web
|
||||||
image: nextcloud-web
|
image: nextcloud-web
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
links:
|
links:
|
||||||
- "cloud:app"
|
- "cloud:app"
|
||||||
published_ports:
|
published_ports:
|
||||||
|
@ -3,7 +3,7 @@ http_host: "cloud.hopsngrains.com"
|
|||||||
http_conf: "cloud.hopsngrains.com.conf"
|
http_conf: "cloud.hopsngrains.com.conf"
|
||||||
|
|
||||||
container_name: cloud
|
container_name: cloud
|
||||||
container_image: nextcloud:fpm-alpine
|
container_image: nextcloud:fpm
|
||||||
|
|
||||||
db_name: "nextcloud"
|
db_name: "nextcloud"
|
||||||
db_user: "postgres"
|
db_user: "postgres"
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
name: "{{ postgres_name }}"
|
name: "{{ postgres_name }}"
|
||||||
image: "{{ postgres_image }}"
|
image: "{{ postgres_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
env:
|
env:
|
||||||
POSTGRESQL_USER: "{{ pg_user }}"
|
POSTGRESQL_USER: "{{ pg_user }}"
|
||||||
POSTGRESQL_PASSWORD: "{{ pg_password }}"
|
POSTGRESQL_PASSWORD: "{{ pg_password }}"
|
||||||
|
@ -15,4 +15,5 @@
|
|||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ container_image }}"
|
image: "{{ container_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ container_image }}"
|
image: "{{ container_image }}"
|
||||||
state: started
|
state: started
|
||||||
|
restart_policy: "unless-stopped"
|
||||||
published_ports:
|
published_ports:
|
||||||
- 127.0.0.1:8888:8080
|
- 127.0.0.1:8888:8080
|
||||||
volumes:
|
volumes:
|
||||||
|
Loading…
Reference in New Issue
Block a user