Getting started

Database support

It is recommended that you install a database server. You can install one on the same host as Foodsoft or choose a different host:

[debops_service_mariadb_server]
hostname

In case you chose a different host, you will need to specify which of your database servers the Foodsoft instance should use by specifying the database server host as foodsoft__database_server.

Webserver support

Currently, only Nginx is supported using debops.nginx.

You will need to install Nginx with Passenger support by setting:

nginx_flavor: 'passenger'

in your inventory.

Example inventory

To manage Foodsoft on a given host or set of hosts, they need to be added to the [debops_service_foodsoft_nginx] Ansible group in the inventory:

[debops_service_foodsoft_nginx]
hostname

[debops_service_mariadb_server]
hostname

Example playbook

Ansible playbook that uses the debops-contrib.foodsoft role together with debops.nginx:

---

- name: Setup and manage Foodsoft with Nginx as webserver
  hosts: [ 'debops_service_foodsoft_nginx' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'

  roles:

    - role: debops.apt_preferences
      tags: [ 'role::apt_preferences' ]
      apt_preferences__dependent_list:
        - '{{ ruby__apt_preferences__dependent_list }}'
        - '{{ nginx__apt_preferences__dependent_list }}'

    - role: debops.ferm
      tags: [ 'role::ferm' ]
      ferm__dependent_rules:
        - '{{ nginx__ferm__dependent_rules }}'

    - role: debops.mariadb
      tags: [ 'role::mariadb' ]
      mariadb__dependent_databases: '{{ foodsoft__mariadb__dependent_databases }}'
      mariadb__dependent_users: '{{ foodsoft__mariadb__dependent_users }}'
      when: (foodsoft__database == 'mariadb')

    - role: debops.ruby
      tags: [ 'role::ruby' ]

    - role: debops.nginx
      tags: [ 'role::nginx' ]
      nginx__dependent_servers:
        - '{{ foodsoft__nginx__dependent_servers }}'

    - role: debops-contrib.foodsoft
      tags: [ 'role::foodsoft' ]

The playbook is shipped with this role under ./docs/playbooks/ from which you can symlink it to your playbook directory. In case you use multiple DebOps Contrib roles, consider using the DebOps Contrib playbooks.

Ansible tags

You can use Ansible --tags or --skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after a host was first configured to speed up playbook execution, when you are sure that most of the configuration is already in the desired state.

Available role tags:

role::foodsoft
Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.
role::foodsoft:pkgs
Tasks related to system package management like installing or removing packages.
role::foodsoft:config
Tasks related to configuring Foodsoft.