Files @ 77b5fc2b0b41
Branch filter:

Location: freifunk/Ansible-Configuration/README.md - annotation

x
fix: resolv.conf overwriting error because of default immutable attribute
# fflux Ansible Configuration

This repo contains Ansible configs for the Freifunk Lëtzebuerg infra.

## Files

- `hosts`: contains all of the machines.
  - Careful: a wrongly defined machine can lead to major problems.
- `authorized_keys`: `fflux` user pubkey

## Directories

- `files`: templates for various playbooks
- `initial_server_setup`: initial server setup
- `gateway`: Set up a fflux gateway
- `api`: api.freifunk.lu
- `firmware`: firmware.freifunk.lu

## Guide

### Initial Server Setup

First, add the machine to `hosts` at the top of the file:

```yml
machine-name-here ansible_host=10.20.30.40
```

Note that `machine-name-here` will be the machine's hostname.

Then, put the machine under the `[initial]` group:

```yml
[initial]
machine-name-here ansible_user=root
```

Finally, change the default private SSH key under `[all:vars]` if necessary:

```yml
ansible_ssh_private_key_file=/home/myuser/.ssh/id_ed25519
```

You can now run the playbook:

```bash
fflux@fflux:~/repos/Ansible-Configuration$ ansible-playbook -i hosts initial_server_setup/initial_setup.yml
```

Note that the placement of the repositories might impact the playbook's behaviour, particularly for more advanced setups, incl. web server.

### Install Website (freifunk, www, api)

First, make sure the machine is still configured properly at the top of the `hosts` file. (see initial server setup)

Then, put the machine under the `[website-web]` group:

```yml
perso-test
```

Note that if you are not running this on the fflux management server as the `fflux` user, you might want to check the remote `authorized_keys` (that one of your keys is allowed) and append `ansible_user=fflux` to that line, similarly to the initial server setup.

Do not forget to set the DNS records properly, so that the machine is reachable via the domain names. (at the time of writing `freifunk.lu`, `www.freifunk.lu` and `api.freifunk.lu`, but you can simply check the playblook)

On top of that, make sure that the `fflux` user has a ssh keypair (for git) which is configured properly on projects.c3l.lu. That way, it can clone the website and api repositories.

Finally, run the playbook:

```bash
fflux@fflux:~/repos/Ansible-Configuration$ ansible-playbook -v -i hosts web/install_website.yml
```