Étape 7: Ansible Playbooks
Cette partie est juste un exemple de ce qui est possible avec ansible playbooks.
Je vais utiliser mon test projet pour déployer le contrôleur de température raspberry pi avec interface web. Il utilise :
script Python pour :
obtenir la température des capteurs 1-wire ds18b20, le stocker dans la base de données sqlite ;
Découvre une interface utilisateur web avec parcelle de température
serveur Apache pour servir de page web et exécution cgi script pour générer le graphique de la température.
Structure des fichiers de mon projet
-ansible /
-pyrun.py # utilisé pour exécuter le playbook par programme.
-inventory.py
-main.yml # est le fichier principal que je dirige pour faire toutes les tâches, y compris mise à jour/mise à niveau comprend, les tâches de configuration et de déploiement. Ce n’est simple le projet là aucun rôle et prise de décision.
-fichiers / # est un dossier pour stocker tous les fichiers, vous devez copier à raspberry pi, par exemple public ssh keys
-playbooks / # est un dossier pour ansible playbooks, si vous voulez avoir un ensemble distinct de tâches pour différents scénarios comme mise à jour/mise à niveau car vous ne voulez pas exécuter chaque fois.
-vars / # stocke les fichiers avec différentes variables, vous pourriez avoir besoin comme des chemins d’accès et autorisations, listes des utilisateurs etc.
-modèles / Nbre de magasins jinja2 templates pour générer des choses différentes sur les machines. Je l’utilise pour créer la configuration d’apache, mais il n’est pas nécessaire pour une installation simple
Pour tester qui fonctionne de l’inventaire, vous devez exécuter le module de test « ping », qui sera de retour « pong » si tout va bien. Le faire de deux façons :
-ansible -i inventory.py tous -m ping
-pyrun.py de python avec « exécuter modules » bloc décommenté et « exécuter playbooks » a commenté
Ils produisent une sortie similaire. Option de Python donne plus de flexibilité pour la surveillance et la capacité de réagir aux erreurs dans le code.
Si tout va bien essayer d’exécuter les principal playbook :
-ansible-playbook - i inventory.py tous les main.yml
-pyrun.py de python avec « exécuter playbooks » bloc décommenté et « exécuter en modules » a commenté
Ce processus prendra du temps, selon à quelle vitesse votre liaison descendante est et combien de Rpi que vous possédez.
En fin de compte, vous devriez être en mesure d’utiliser le lien de la forme « rpi_ip_adress/cgi-bin/webgui.py » et de voir une page Web avec le tableau des températures.
Note si cela ne fonctionne pas
-Il existe des différences dans les apache2.config pour système d’exploitation différent, même pour Debian « wheezy » vs « jessie », j’ai dû changer d’activation pour le module cgi dans apache pour tous à courir. Toutes les idées pourquoi est-il ainsi ?
-vous pourriez manquer autorisations correctes dans le système.
-vérifier si ansible terminé sans erreur ou manqué quelque chose.