You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kidhab c2f7c62bad Add icinga port 5 months ago
group_vars Move variable to global name space to make them accessable from all roles 5 months ago
host_vars Add icinga port 5 months ago
playbooks Rename tag 5 months ago
roles Add icinga port 5 months ago
.gitignore first commit 5 months ago Note about deleting an entry after removing a foodcoop 5 months ago
ansible.cfg first commit 5 months ago
hosts Change ssh port for focone 5 months ago

Management of the infrastructure

In this repository you'll find a couple of Ansible roles to setup and manage the infrastructure for the global hosting platform of

To use this roles you have to install these packages:

apt install ansible ansible-mitogen

We don't want to save internal data as clear text in this roles. For data encryption we make use of ansible-vault. To complete your Ansible setup just create a file called .vault_pass at the same level as this Readme file and include the vault password from our password database in this file. All variables that make use of the vault start with a prefix vault_.

Have a look at a role's directory to find our more details on how we implement the global hosting platform.

You can execute a role by using the corresponding playbook which are named equally:

ansible-playbook playbooks/foodsoft.yml

Roles overview

Name Description
basic-server Initial setup for a new server
nginx Installation and configuration of Nginx
mariadb Installation and configuration of MariaDB
postfix Installation and configuration of Postfix for use with a real mail domain
sharedlists Installation, configuration, updating of sharedlists
foodsoft Installation, configuration, updating of the Foodsoft

Common tasks

Adding a new foodcoop

  1. Gather all information
  2. Add the data to host_vars/focone.yml in the section foodcoops. Just follow the existing pattern.
  3. Upload the changes to our Git repository.
  4. Execute the playbook with:
    ansible-playbook playbooks/foodsoft.yml --tags never,foodcoop_add
  5. Immediately login with admin / secret and change the user details and password. The admin user should become the user account of the first contact person, so use their email address here. We do not want to encourage an unused admin account.
  6. You may want to pre-set some configuration if you know a bit more about the foodcoop. It's always helpful for new foodcoops to have a setup that already reflects their intended use a bit. At least you should set a time zone.
  7. Send an email to the foodcoop's contact persons with the url and admin account details.
  8. Please also communicate that this platform is run by volunteers from participating food cooperatives and depends on donations.
  9. Add the two contact persons to our foodsoft announce mailing list.

Deleting a foodcoop

If the deletion of a foocoop is requested follow these steps:

  1. Find the foodcoops's configuration at host_vars/focone.yml. Enter another entry called deleted: true to the array:
      - name: mycoop
        database: foodsoft_mycoop
        deleted: true
  2. Execute the playbook:
    ansible-playbook playbooks/foodsoft --tags never,foodcoops_delete
  3. Delete the foodcoop's entry from host_vars/focone.yml.
  4. Upload the changes to our Git repository.
  5. Delete the two contact persons from our foodsoft announce mailing list.