pilot-playbooks/README.md
2022-07-02 16:22:50 +02:00

1.7 KiB

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 :

{
  "working_dir": "/srv/apps",  
  "with_dashboard": "yes",
  "with_https": "yes",
  "acme_email": "admin@example.com",
  "log_level": "INFO"
}

Then run setup playbook:

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 :

{
  "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:

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 :

{
  "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:

HOSTNAME=vps.example.com
$ ansible-playbook -i $HOSTNAME, -e ansible_python_interpreter=/usr/bin/python3 -e @vars.json playbooks/db-create.yml