Ansible

Ces étapes s’appliquent à l’installation directe sur un serveur OS et exige une expérience en configuration à distance.

Pour utiliser Ansible, votre clé SSH publique doit être dans .ssh/authorized_keys sur l’hébergement à distance et vous devez également créer un /etc/ansible/hosts ou semblable avec l’adresse IP ou le nom de l’hébergement à distance. Un fichier Ansible/hébergement qui dispose d’une entrée pour l’hébergement local et un serveur doit être :

[local]
localhost ansible_connection=local

[servers]
172.16.174.137

Installation SSH

Un modèle de playbook est fourni pour vous montrer comment créer un utilisateur fr doté de permissions sudo à l’aide d’Ansible à utiliser avec la mémoire virtuelle. Cf. /packaging pour Terraform (Digital Ocean) et Vagrant (CentOS 7 et Ubuntu 18) pour des exemples qui fonctionnent.

Créez une mémoire virtuelle. Assurez-vous d’inclure une clé ssh publique pour l’utilisateur qui installera les prérequis.

Créez un utilisateur fr et octroyez-lui un accès sudo :

ansible-playbook -i /usr/local/etc/ansible/hosts user.yaml

En fonction des besoins, ajoutez des clés ssh pour l’utilisateur fr. (Assurez-vous que la clé publique de l’utilisateur est disponible sur github, c’est-à-dire https://github.com/citizenrich.keys) :

ansible-playbook -i /usr/local/etc/ansible/hosts keys.yaml

Installation

Prérequis : git, redis, mongo, nodejs, paquets de construction natives pour nœud :

# for centos
ansible-playbook -i /usr/local/etc/ansible/hosts prep_centos.yaml
# for ubuntu
ansible-playbook -i /usr/local/etc/ansible/hosts prep_ubuntu.yaml

Installez les services, chargez-les et démarrez-les dans le système :

# prepare hearth and the app
ansible-playbook -i /usr/local/etc/ansible/hosts install.yaml
# install into systemd and begin the hearth and backend services
ansible-playbook -i /usr/local/etc/ansible/hosts services.yaml

Résolution de problème

Vérifiez que tous les process tournent ainsi que le dernier statut en date pour hearth et backend :

ansible-playbook -i /usr/local/etc/ansible/hosts troubleshoot.yaml

Mises à niveau

Relancez l’installation des mises à jour de playbook intrahealth/hearth et appli repos sur le serveur à distance. Relancez les services de mise à jour de playbook services. yaml. Les services sont réinitialisés (pas simplement retéléchargés).

Le playbook install.yaml utilise :

  • Utilisez git pull pour obtenir les dernières mises à jour en date pour la branche master.
  • Installation npm pour la mise à jour des packages.

Statut de base

# on centos, use `mongod`
systemctl status mongod.service
# on ubuntu,use `mongodb`
systemctl status mongodb.service
systemctl status redis.service
systemctl status facility-recon.service
systemctl status hearth.service

Connexions

# on centos, use `mongod`
journalctl -u mongod.service -b
# on ubuntu,use `mongodb`
journalctl -u mongodb.service -b
journalctl -u facility-recon.service -b
journalctl -u hearth.service -b
journalctl -u redis.service -b

Redémarrage des services

sudo systemctl restart facility-recon.service
sudo systemctl restart hearth.service

Redémarrez les bases de données

# on centos, use `mongod`
sudo systemctl restart mongod.service
# on ubuntu,use `mongodb`
sudo systemctl restart mongodb.service
sudo systemctl restart redis.service

Mise en réseau

Assurez-vous que les process écoutent sur les ports qui conviennent : cf. https://serverfault.com/questions/725262/what-causes-the-connection-refused-message

# gui: 8080, backend: 3000, hearth: 3447, mongo: 27017, redis: 6379
sudo netstat -tnlp | grep :8080
sudo netstat -tnlp | grep :3000
sudo netstat -tnlp | grep :3447
sudo netstat -tnlp | grep :27017
sudo netstat -tnlp | grep :6379

Vérifiez qu’il n’y ait pas de blocage de pare-feu. Relancez le gui et :

sudo tcpdump -n icmp