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