Raspberry Pi orkestrering (5 / 6 steg)
Steg 7: Ansible Playbooks
Denna del är bara ett exempel på vad som är möjligt med ansible playbooks.
Jag använder min testning project för att distribuera raspberry pi temperaturvakt med webbgränssnitt. Används:
python-skript för att:
får temperaturen från ds18b20 1-wire sensorer, lagra det i sqlite databas;
Visa en web ui med temperatur tomt
Apache server att tjäna webbsida och köra cgi-skript generera temperatur tomt.
Filstruktur för mitt projekt
-ansible /
-pyrun.py # används för att köra playbook programmässigt.
-inventory.py
-main.yml # är den största filen som jag kör för att göra alla uppgifter, det inkluderar uppdatera/uppgradera funktioner, provisionering och distribution uppgifter. Som det är enkla projekt där inga roller och beslutsfattande.
-filer / # är en mapp för att lagra alla filer du behöver kopiera raspberry pi, till exempel offentliga ssh nycklar
-playbooks / # är en mapp för ansible playbooks, om du vill ha separat uppsättning uppgifter för olika scenarier som uppdatering/uppgradering som du inte vill köra det varje gång.
-vars / # butiker filer med olika variabler måste du kanske gillar banor och behörigheter, användare listor etc.
-mallar / # butiker jinja2 mallfiler för att generera olika saker på maskinerna. Jag använda den för att skapa apache konfiguration, men det är inte nödvändigt för enkel installation
Om du vill testa som lagret fungerar bör du köra testmodul "ping", som kommer tillbaka "pong" om allt är OK. Göra det på två sätt:
-ansible -i inventory.py alla -m ping
-python pyrun.py med "kör moduler" block okommenterade och "kör playbooks" kommenterade
De producera liknande utgång. Python alternativet ger mer flexibilitet för övervakning och förmågan att reagera på fel i koden.
Om allt går väl prova att köra huvudsakliga playbook:
-ansible-playbook - i inventory.py alla main.yml
-python pyrun.py med "kör playbooks" block okommenterade och "kör moduler" kommenterade
Denna process kommer att ta tid, beroende på hur snabb din nedlänk är och hur många Rpi du har.
Till slut bör du kunna använda länken i formuläret "rpi_ip_adress/cgi-bin/webgui.py" och se en webbsida med temperatur.
Anteckningar om det inte fungerar
-Det finns skillnader i apache2.config för olika OS, även för Debians "wheezy" vs "jessie" jag var tvungen att ändra aktiveringen för cgi-modulen i apache för alla att köra. Några idéer varför är det så?
-Du kanske saknas rätt behörigheter i systemet.
-Kontrollera om ansible klar utan fel eller missat något.