69 lines
1.1 KiB
Markdown
69 lines
1.1 KiB
Markdown
# Ansible: Setup App
|
|
|
|
This playbook installs app from repository and bind Traefik on defined host.
|
|
|
|
## Manage app
|
|
|
|
Available playbooks:
|
|
|
|
+ app-install
|
|
+ app-start
|
|
+ app-stop
|
|
|
|
Start by copy then change values of hosts example file :
|
|
|
|
```bash
|
|
$ cp hosts.example.ini hosts.ini
|
|
```
|
|
|
|
Then create a file `vars.json` who contain :
|
|
|
|
```json
|
|
{
|
|
"container_name": "myapp",
|
|
"repository": "https://git.example.com/vendor/app.git",
|
|
"version": "master",
|
|
"host": "myapp.example.com",
|
|
"dockerfile": "Dockerfile",
|
|
"volumes": {
|
|
"storage": "/app/storage"
|
|
},
|
|
"envvars": {
|
|
"APP_NAME": "Wonderful",
|
|
"APP_ENV": "production"
|
|
}
|
|
}
|
|
```
|
|
|
|
Then run a playbook:
|
|
|
|
```bash
|
|
$ ansible-playbook -i hosts.ini -e @vars.json playbooks/app-install.yml
|
|
```
|
|
|
|
## Manage database
|
|
|
|
Available playbooks:
|
|
|
|
+ db-create
|
|
|
|
First create a file `dbvars.json` who contain :
|
|
|
|
```json
|
|
{
|
|
"container_name": "myappdb",
|
|
"envvars": {
|
|
"MYSQL_ROOT_PASSWORD": "superpassword",
|
|
"MYSQL_DATABASE": "myappdb",
|
|
"MYSQL_USER": "user",
|
|
"MYSQL_PASSWORD": "password"
|
|
}
|
|
}
|
|
```
|
|
|
|
Then run a playbook:
|
|
|
|
```bash
|
|
$ ansible-playbook -i hosts.ini -e @dbvars.json playbooks/db-create.yml
|
|
```
|