Skip to content
Matías Lescano edited this page Jan 6, 2018 · 1 revision

Installer DemocracyOS

L'installation se passe sur GNU/Linux exclusivement

Source : http://democracyos.eu

Source : http://democracyos.eu/docs-fr/doc/2016/09/22/installation.html#installation

Contacter DemocracyOS avec le mail contact@democracyos.eu

Installer Democracy Os sur une machine virtuelle avec onpremises

Question : https://github.com/DemocracyOS/democracyos/issues/1468#issuecomment-344602204

Solution : https://github.com/DemocracyOS/onpremises

Exemple d'installation de Democracy Os pour une machine virtuelle sous Debian 9 Stretch

Installer Ansible 2.1.0.0 ou supérieur. La source PPA pour Debian 9 Stretch est la même que pour Ubuntu.

Dans /etc/apt/sources.list, ajouter la ligne suivante : deb http://ppa.launchpad.net/ansible/ansible/ubuntu xenial main

Ajouter la clé

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367

Le message d'erreur suivant est affiché : Executing: /tmp/apt-key-gpghome.cEEKTiql4h/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 gpg: failed to start the dirmngr '/usr/bin/dirmngr': Aucun fichier ou dossier de ce type gpg: connecting dirmngr at '/tmp/apt-key-gpghome.cEEKTiql4h/S.dirmngr' failed: Aucun fichier ou dossier de ce type gpg: keyserver receive failed: Pas de dirmngr

Le paquet dirmngr n'est pas installé par défaut. Installer dirmngr avec la commande apt install dirmngr Relancer l'ajout de la clé avec la commande sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367

Mettre à jour les dépôts. $ sudo apt-get update

Installer Ansible $ sudo apt-get install ansible

Cloner le repo et indiquer les roles nécessaires

ansible-galaxy install -p ./roles -r ./requirements.yml

Consulter les tutoriels suivants pour comprendre cette commande

=> https://galaxy.ansible.com => Les rôles disponibles : https://galaxy.ansible.com/list#/roles

=> http://docs.ansible.com/ansible/latest/galaxy.html => http://docs.ansible.com/ansible/latest/playbooks.html => http://docs.ansible.com/ansible/latest/playbooks_reuse.html

=> Lire aussi : http://docs.ansible.com/ansible/latest/galaxy.html#the-website => Tutoriel complémentaire pour installer ansible : https://www.abyssproject.net/2016/08/installation-de-ansible-raspbian-debian/

Voir si la commande suivante apporte des informations complémentaires man ansible pour plus d'informations sur le paramètre -p ./roles

Info : Je lance la commande sans définir de roles. Info : A suivre si il ne faut pas tout de même le configurer.

===Lancer le clonage=== ====Créer le fichier requirements.yml dans le dossier user==== =====Fichier requirements.yml===== Info : requirements.yml

Info : Depuis le serveur galaxy

  • src: yatesr.timezone

Info : Faut t'il vraiment doubler avec les dépôts de github ? Info : Je commente les dépôts dans le format final. Si besoin décommenter pour github. Info : from github Info : - src: https://github.com/bennojoy/nginx

Info : from github, overriding the name and specifying a specific tag #- src: https://github.com/bennojoy/nginx Info : version: master Info : name: nginx_role

Je part du principe que les dépôts présentés ci-dessous sont des exemples obsolètes.

from a webserver, where the role is packaged in a tar.gz

##- src: https://some.webserver.example.com/files/master.tar.gz

name: http-role

from bitbucket, if bitbucket happens to be operational right now :)

##- src: git+http://bitbucket.org/willthames/git-ansible-galaxy

version: v1.4

from bitbucket, alternative syntax and caveats

##- src: http://bitbucket.org/willthames/hg-ansible-galaxy

scm: hg

Source officielle du fichier de requirements.yml : https://galaxy.ansible.com/intro#download-advanced

####Cloner pour installer ansible-galaxy su apt install git

su ansible-galaxy install -p ./roles -r ./requirements.yml

####Warning Pour éviter le warning avec le fichier de test, installer git avant de lancer l'installation de ansible-galaxy. [WARNING]: - nginx was NOT installed successfully: error executing: git clone https://github.com/bennojoy/nginx nginx Installer git

Pour éviter le warning avec le fichier de test, commenter les lignes comme dans l'exemple. [WARNING]: - http-role was NOT installed successfully. Préciser l'adresse du fichier tar.gz contenant les rôles, ou, commenter la ligne comme dans l'exemple du fichier requirements.yml ci-dessus.

##Installer le client SSH apt install openssh-client

###Créer votre première Droplet DigitalOcean Les serveurs cloud de DigitalOcean sont appelés Droplets. Chaque Droplet créé est un nouveau serveur pour votre usage personnel.

####Étape 1 - Connexion à Cloud DigitalOcean Pour suivre ce tutoriel, il faut un compte DigitalOcean valide. Utiliser la page d'inscription de DigitalOcean si vous n'avez pas encore de compte : https://cloud.digitalocean.com/registrations/new Une fois le mail de confirmation reçu et validé, vous devez ajouter une carte bancaire comme moyen de paiement. Le Droplet peut alors être créé depuis le lien suivant : https://cloud.digitalocean.com/droplets/new

Les valeurs par défaut les plus courantes sont présélectionnées mais vous pouvez personnaliser les options du Droplet selon vos besoins.

#####Choix pour une image##### L'image Ubuntu 16.04.3 x64 bits est sélectionnée par défaut. Pour changer de version ou d'architecture, comme Debian ou CentOS, cliquer sur la flèche vers le bas et effectuer une sélection dans la liste. Je ne conserve pas la version Ubuntu proposée par le tutoriel d'origine mais utilise la version Debian 9.3 x64 bits.

Une fois que vous avez commencé à utiliser votre Droplet, vous pouvez effectuer des sauvegardes ou prendre des instantanés. Deux onglets sont ajoutés à la page Créer un Droplet.

Les sauvegardes sont automatiques ou hebdomadaires. Les instantanés sont des sauvegardes à la demande. Les sauvegardes et les instantanés peuvent servir de base pour créer de nouveaux Droplets.

#####Choix pour la RAM et le stockage Je prend la première offre, la moins cher, pour tester DemocracyOS.

#####Choix pour le stockage en bloc Les volumes sont des ressources indépendantes qui peuvent être déplacées d'un Droplet à un autre dans le même centre de données. Tutoriel pour le stockage de bloc : https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean Nous n'allons pas ajouter Block Storage pour le moment.

#####Choix de la région du serveur Pour obtenir les meilleures performances, choisir le serveur le plus proche de vous et de vos utilisateurs. Des emplacements de serveur plus éloignés peuvent augmenter la latence du serveur sans apporter d'avantages.

Si nous avions sélectionné Stockage en bloc, certaines régions seraient grisées.

Ici je sélectionne le serveur de Frankfort.

#####Choix des options La mise en réseau privée active une interface réseau supplémentaire accessible uniquement par d'autres droplets dans le même centre de données. Cela peut être utile pour empêcher le trafic entre Droplets d'être acheminé hors du centre de données sur Internet. Le réseautage privé est fourni sans frais supplémentaires.

Les sauvegardes permettent des sauvegardes automatiques du Droplet. Les sauvegardes coûtent environ 20% du prix mensuel du Droplet.

IPv6 active l'accès IPv6 pour votre Droplet. IPv6 est fournie sans frais supplémentaires.

Les données utilisateur vous permettent de transmettre des données arbitraires dans la clé de données utilisateur du service de métadonnées DigitalOcean. Ce paramètre est requis pour les droplets CoreOS. Les données utilisateur sont fournies sans frais supplémentaires.

La surveillance ajoute l'agent DigitalOcean pour collecter des métriques étendues et créer des stratégies d'alerte. La surveillance est fournie sans frais supplémentaires.

Dans cet exemple, j'ajoute simplement l'option de surveillance ( Monitoring ).

#####Choix des clés SSH Facultatif. Voir le tutoriel de Digital Océan pour la création et la gestion d'une clé SSH : https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets #####Créer une clé SSH Info : Lancer la commande suivante pour générer une clé SSH. Info : La commande est lancée avec le simple utilisateur sans droits supplémentaires. ssh-keygen -b 4096

Info : Répondre aux questions suivantes. Generating public/private rsa key pair. Info : Changer éventuellement la localisation de la clé SSH, les dossiers doivent exister. Enter file in which to save the key (/home/zencool/.ssh/id_rsa): /home/zencool/.ssh/id_rsa/DropletDigitalOcean Info : Ajouter une passe phrase facultative. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zencool/.ssh/id_rsa/DropletDigitalOcean. Your public key has been saved in /home/zencool/.ssh/id_rsa/DropletDigitalOcean.pub. The key fingerprint is: SHA256:TzTV6l6VVcGw59IpwB7WouNHqInGO4EO6XlkolNzcQA zencool@debian

Info : Lire et afficher la clé publique avec la commande suivante ou directement en ouvrant le fichier .pub depuis un bloc notes. cat /home/user/.ssh/id_rsa

Info : Lire et afficher la clé publique. cat /home/zencool/.ssh/id_rsa/DropletDigitalOcean.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5TRoYeqjfqW3+Es1t72vrQkK8ir3/hU8aNrp3sWGBZ8WJPIdpORG6i5Ke7y7yXCqsdRn9qoOM5zZcdmAoMqIc4XUsxwkAOz2cd2QXqzHf6QDJRSK4bg6RoIuhLE4GvWe6YNbuLaH56gw1uUlEH8SQFn7rEgiK1B01wTIUdfDMkZughzH1F5ou7axdKJ8/XjP+zQwg0r+xi4bRwdbvoLmmMm/CKGsqvA5NP/OALvcp2aNonvRZLvjb7ryZtVCeYkjcmlLm93tLsdMY42fQ36bD/4QfHtoVqb76XBxT1lQMf39tWg4441tyDy4XzHiST06GhbrbBw0lVymp4a37ZmRuMJ2tHy5L1RvJ7Maa8F5gzQ6NFea8N0r18uStPz4+qjD7i0ZPmxFMYwgsoFCHuITdU6cmXBeYQQARwqFj741RErBIK7SUC64X4AT/ZrdH2KNo8o7Ma+Cn7CmqIsMt9PZYbxvbmcyPkTNzsqgYTFGGEfS1dDgJxo6Ayined1kBMH4PuSGjOIrxGZD+KE1f3Q8+4XZr3PBWC4BfrDj3OW/AJzGF8XuysxRorDJ8VN2lPor2uEYaqDp38Rg+ZDa0TBIaovUjSodOUV3OF5ER0SxCxy23Vzy0s8hwR60/xseIlffDkl+Mk3IgHqtzulITWX4tDqUREYWBXIz3QD2+1z1m5Q== zencool@debian

#####Finalisation et création du Droplet La section Finaliser et créer de la page Créer vous permet de choisir le numéro et le nom du Droplet créé.

Par défaut, un seul Droplet sera créé. Ajuster le nombre de Droplets en cliquant sur les boutons plus "+" ou moins "-".

Chaque Droplet doit avoir un nom. Ces noms sont utilisés dans le panneau de configuration DigitalOcean et en tant que nom d'hôte du serveur. Un nom par défaut est fourni en fonction des options que vous avez sélectionnées, mais, vous pouvez modifier le nom en fonction de vos besoins. Par exemple, vous pouvez utiliser un nom de domaine complet, par exemple droplet1.exemple.com.

Nous allons accepter le nom par défaut, debian-512mb-fra1-01. Il combine le nom de la distribution, la taille, le centre de données et un nombre qui le différencie des autres lorsque plusieurs Droplets sont créées à la fois.

Créer le Droplet. Une barre de progression affiche la progression de la création du Droplet.

#####Paramètres du Droplet créé Lorsque la configuration est terminée à 100%, l'adresse IP de votre Droplet sera affichée. Vous pouvez vous connecter.

#####Connexion au Droplet

Adresse ip du serveur Digital Ocean: 46.101.255.59

Si vous avez ajouté des clés SSH, vous pouvez utiliser SSH pour vous connecter au serveur et vous connecter en tant qu'utilisateur root. Sinon, le mot de passe root sera envoyé à l'adresse e-mail de votre compte.

Se connecter sur le serveur distant. ssh root@46.101.255.59

Valider avec Oui lorsque l'invite vous demande si vous souhaitez vous connecter à l'hôte.

Si vous utilisez des clés SSH, vous serez immédiatement connecté au serveur. Si vous n'utilisez pas les clés SSH, un mot de passe vous sera demandé. Entrez le mot de passe root qui vous a été envoyé lorsque vous avez créé le serveur, puis appuyez sur ENTER. Notez que le mot de passe ne sera pas visible à l'écran lorsque vous tapez pour des raisons de sécurité.

Vous devriez maintenant être connecté à votre premier Droplet DigitalOcean.

#####Conclusion Une fois que vous avez créé votre Droplet et que vous vous êtes connecté, vous pouvez commencer à le configurer. Clé SSH avec un Utiliser_des_commandes_shell_avec_le_terminal#Ajouter_le_droit_sudoers_pour_un_utilisateur.

Source du tutoriel pour la création d'un Droplet : https://www.digitalocean.com/community/tutorials/how-to-create-your-first-digitalocean-droplet

###Vérifier la connexion avec la clé SSH Un Droplet a été créé sur DigitalOcéan pour suivre le tutoriel proposé par DemocracyOS pour son installation. La Machine Virtuelle où DemocracyOS va s'exécuter avec un accès rootdoit pouvoir se connecter au Droplet avec une clé SSH.

Les configurations précédentes ont du nous permettre d'en arriver a une connexion réussie vers le serveur SSH distant avec l'utilisateur sudoers distant toto. ssh toto@46.101.255.59 -i /home/user/.ssh/dossier/id_rsa

L'accès SSH depuis la machine virtuelle Debian Stretch et son utilisateur root vers le Droplet et son utilisateur sudoers est fonctionnel.

###Continuer sur la Machine Virtuelle --> En revenir au Github : https://github.com/DemocracyOS/onpremises ####Personnaliser la façon dont l'environnement va fonctionner Créer un fichier d'inventaire et un fichier de configuration avec vos variables personnalisées.

Inventory Hosts and Groups Host Variables Group Variables Groups of Groups, and Group Variables Default groups Splitting Out Host and Group Specific Data List of Behavioral Inventory Parameters Non-SSH connection types

Info : Source : http://docs.ansible.com/ansible/latest/intro_inventory.html Info : En français : http://translate.google.com/translate?hl=en&sl=auto&tl=fr&u=http%3A%2F%2Fdocs.ansible.com%2Fansible%2Flatest%2Fintro_inventory.html&sandbox=1

####Exemple Utiliser comme inventories/example et inventories/example.yml. Info : Les noms de fichiers doivent être les mêmes que votre environnement : inventories/staging and inventories/staging.yml. Info : Je change le nom de fichier par le hostname (???!!!)

[host] Info : Here you have to put all the necessary data to connect to your server Info : more info: http://docs.ansible.com/ansible/intro_inventory.html localhost

[host:vars] ENV=example

Info : (required) is the location of the configuration file inventory_env=example

inventories/example


Info : Here you can override all the variables that are used on playbook.yml hostDest: /usr/src

Info : Here you can put all the configuration variables for DemocracyOS Info : You can set any of the values listed here: Info : http://docs.democracyos.org/configuration.html democracyos: ORGANIZATION_NAME: 'DemocracyOS Example'

inventories/example.yml

##Lastly, just run with playbook.yml Lancer alors la commande qui va exécuter toutes les tâches définies sur playbook.yml ansible-playbook playbook.yml -i inventories/

This command is going to execute all the tasks defined at playbook.yml. If you need to know how that works, here's the official docs. https://github.com/DemocracyOS/onpremises/blob/master/playbook.yml http://docs.ansible.com/ansible/latest/playbooks.html

##Gérer la machine virtuelle Inside your VM, you can run the following commands:

Info : Deploy a new Docker image docker pull democracyos/democracyos:latest && docker-compose -f /usr/src/docker-compose.yml restart -d

Info : See the logs docker-compose -f /usr/src/docker-compose.yml logs --follow

Info : View all the services running docker-compose -f /usr/src/docker-compose.yml ps

Info : Connect to the running MongoDb console docker exec -it src_mongo_1 mongo democracyos-staging

Info : Connect to the image running DemocracyOS docker exec -it src_app_1 bash

Info : Scale the number of DemocracyOS instances running docker-compose -f /usr/src/docker-compose.yml scale app=3

##MongoDB Backups If you're running on staging or production environment, everyday at 23:59 a dump of the entire database will be saved to /usr/src/backups. You can check the file templates/backup.js to see what it does.

#DemocracyOS devient Democracy Earth File:democracy-earth.png

#Bibliographie Coté France, l'équipe de Democracy OS n'a pas encore pu tester la version OnPremises / Ansible de DemocracyOS. Leur déploiement est généralement fait manuellement sur serveur Linux ou automatiquement via des services cloud type Heroku.

Pour un support sur OnPremises, utiliser la chaîne Gitter de DemocracyOS : https://gitter.im/DemocracyOS/democracyos

French source : https://www.visionduweb.eu/wiki/index.php?title=Installer_DemocracyOS