# Ansible: Setup App This playbook installs app from repository and bind Traefik on defined host. ## Setup server First create a file `vars.json` who contain : ```json { "working_dir": "/srv/apps", "with_dashboard": "yes", "with_https": "yes", "acme_email": "admin@example.com", "log_level": "INFO" } ``` Then run setup playbook: ```bash HOSTNAME=vps.example.com $ ansible-playbook -i $HOSTNAME, -e ansible_python_interpreter=/usr/bin/python3 -e @vars.json playbooks/setup.yml ``` ## Manage app Available playbooks: + app-install + app-start + app-stop First create a file `vars.json` who contain : ```json { "working_dir": "/home/vagrant/test", "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 HOSTNAME=vps.example.com $ ansible-playbook -i $HOSTNAME, -e ansible_python_interpreter=/usr/bin/python3 -e @vars.json playbooks/app-install.yml ``` ## Manage database Available playbooks: + db-create First create a file `vars.json` who contain : ```json { "ansible_python_interpreter": "/usr/bin/python3", "container_name": "myappdb", "envvars": { "MYSQL_ROOT_PASSWORD": "superpassword", "MYSQL_DATABASE": "myappdb", "MYSQL_USER": "user", "MYSQL_PASSWORD": "password" } } ``` Then run a playbook: ```bash HOSTNAME=vps.example.com $ ansible-playbook -i $HOSTNAME, -e ansible_python_interpreter=/usr/bin/python3 -e @vars.json playbooks/db-create.yml ```