Giter Site home page Giter Site logo

ansible-scripts's Introduction

Ansible scripts to handle OSM-FR machines

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.

Installing dependencies

Installing on Debian

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

Installing using venv

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.

Using ansible scripts

Installation and configuration of a new VM with proxmox

  1. launch ./tools/add-vm.py to update file hosts and create proxmox configuration. Command line options are available to change parameters like number of cpus or size of disk.
  2. set shell variables PROXMOX_PASSWORD and PROXMOX_SSHPUBKEY
  3. 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

Configuration of a new machine with default configuration

  1. add the machine to file hosts, in section [vm] if it is a virtual machine, at the top otherwise.
  2. launch following command:
    ansible-playbook -l <hostname> common.yml

Adding a new user to a specific machine

  1. add the machine to file hosts, in the relevant section [user]
  2. if necessary, add the user to group_vars/all/accounts.yml, with the public ssh key in public\_keys/<user>
  3. launch following command:
    ansible-playbook -l <hostname> accounts.yml

Adding a service to a specific machine

  1. add the machine to file hosts, in the relevant section [service]
  2. launch following command:
    ansible-playbook -l <hostname> <service>.yml

ansible-scripts's People

Contributors

anayrat avatar codain avatar cquest avatar gileri avatar grischard avatar jaclavi avatar jean-baptistec avatar jocelynj avatar lafeychine avatar marc-marc-marc avatar niconil avatar psampont avatar ropp avatar tyndare avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ansible-scripts's Issues

taginfo : improve count-key.sh

  • move the "rm france.o5m" inside the script for better readability
  • add a debug mode (if DEBUG=1) that doesn't do the rm, this is usefull to avoid pbf -> o5m when coding

load des vm <> load du host

Mettre dans ansible la modif lue sur irc comme faite à la main
modifier la config proxmox pour que le load average vu des VM ne soit pas celui du host mais que celui de la VM sed -i 's/ExecStart=/usr/bin/lxcfs /var/lib/lxcfs$/ExecStart=/usr/bin/lxcfs /var/lib/lxcfs -l/' /lib/systemd/system/lxcfs.service mais pour que ce soit actif, il faut stopper toutes les VM, relancer ce service puis les VM... donc bon pour le prochain reboot

update taginfo role

last run fail

name: compile OSM-binary
command: chdir=/data/project/taginfo/OSM-binary/src make

Monitoring de backuppc

Comme demandé dans l'issue 77 d'infrastructure, il faudrait rajouter un script de monitoring des backups dans le role backuppc-server.

task "configure hostname" fail with ansible 2.8.0.dev0

$ ansible-playbook -u root -l osm312.openstreetmap.fr common.yml
<...>
TASK [common : Configure hostname] *********************************************************************************************************************************************
fatal: [osm312.openstreetmap.fr]: FAILED! => {"changed": false, "msg": "Command failed rc=1, out=, err=Could not get property: Failed to activate service 'org.freedesktop.hostname1': timed out\n"}
$ ansible --version
ansible 2.8.0.dev0

Add changes to ansible (hugepages, munin plugins)

Just a reminder for me to not forger to add these changes in ansible:

  • memory plugin on proxmox host
  • Add zfs plugin from munin contrib
  • Configure nr_overcommit_hugepages on host
  • Maybe over kernel tuning (vm.swappiness =1 ...)
  • enable atop and sysstats
  • add zfsiostat

proxmox template

la tache download proxmox template donne l'impression de télécharger le template à chaque exécution
par ailleurs il est sans doute préférable de télécharger le templace directement sur le hosteur plutôt que télécharger en local puis l'envoyer au hosteur

role common produce "changed" status for no-change

  • TASK [common : enable nesting support on VM, required for systemd]
  • TASK [common : bootstrap python3-apt package]
  • TASK [common : add authorized_keys for user backuppc]
  • TASK [common : add ssh key to user backuppc]
  • TASK [common : check if apache installed]

role renderd produce inreadable style file

An error occurred while loading the map layer 'admin8': boost::filesystem::status: Permission denied: "/data/project/layers/layers-mapnik-styles/admin8.xml"

issue is at drwxr-x--- 3 layers layers 8 Jul 10 11:33 /data/project/layers/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.