This repository contains various scripts to setup and configure machines handled by OSM-FR association (a french association for OpenStreetMap). These scripts are used with ansible.
A version of ansible >= 2.3 is sufficient, and is available in Debian, or from git repository. To install all dependency on Debian, use:
apt-get install ansible
To install VM through proxmox, python promoxer module is necessary, It can be installed with:
apt-get install python3-proxmoxer
venv
module creates isolated Python environments.
First of all, install the required packages. On Debian, use:
apt-get install python3 python3-venv
You can jump into a new isolated environments using:
python3 -m venv <folder> # Create the environment, only needs to be done once
source <folder>/bin/activate # Run a subshell using the environment
Then, install the required packages:
pip install -r requirements.txt
Note: The created environment folder should be placed outside this project folder to prevent ansible-lint
from looking at it.
- launch
./tools/add-vm.py
to update filehosts
and create proxmox configuration. Command line options are available to change parameters like number of cpus or size of disk. - set shell variables
PROXMOX_PASSWORD
andPROXMOX_SSHPUBKEY
- launch following command to create VM, configure network on host for ipv6 access, and update local
/etc/hosts
to access VM before DNS update:ansible-playbook -u root -l <hostname> common.yml
- add the machine to file
hosts
, in section[vm]
if it is a virtual machine, at the top otherwise. - launch following command:
ansible-playbook -l <hostname> common.yml
- add the machine to file
hosts
, in the relevant section[user]
- if necessary, add the user to
group_vars/all/accounts.yml
, with the public ssh key inpublic\_keys/<user>
- launch following command:
ansible-playbook -l <hostname> accounts.yml
- add the machine to file
hosts
, in the relevant section[service]
- launch following command:
ansible-playbook -l <hostname> <service>.yml