Sziasztok
Ansible-ben a hosts fájlban felsorolom, hogy milyen hostjaim vannak, pl. debian, web, mail, ezek alá beteszem a konkrét hostokat. Ha egy host mindhárom csoport tagja, akkor mindhárom csoport alá.
Én szeretném a hostjaimat valahogy flagekkel, csoportnevekkel könnyedén rendezni.
Pl. adott egy tűzfal rule, ahol a template fájlban feltételhez kötöm:
{% if inventory_hostname in groups['NS'] %}
iptables -A INPUT -i eth0 -p tcp -m tcp -m state --state NEW --dport 53 -j ACCEPT # NS
iptables -A INPUT -i eth0 -p udp -m udp -m state --state NEW --dport 53 -j ACCEPT # NS
{% endif %}
Akkor a nagy iptables.sh-ban megjelenik ez a sor, egyébként a többieknél nem.
Ha viszont ugyanez a host tartozik egy mail csoportba is, akkor nyissa ki az ahhoz tartozó portokat.
De ne kelljen már nekem ugyanazt a hostot beletenni a debian, az ns, a postfix, stb csoportba és több száz host esetén minden csoportban ellenőrizni, hogy mindenki benne van-e. Nehezen átlátható, hosszú fájl lesz, hibázási lehetőség, szeretném elkerülni.
Szeretném összesen 1x látni az adott hostnevet az inventoryban, nem többször.
Milyen kulturált megoldás van erre?
- 72 megtekintés
Hozzászólások
Nem egeszen ertelek, minden host csak egyszer szerepeljen, de minden hostra lehessen barmit konfigolni? Nem ellentmondas ez? Nem lehetne a hostokat igazi (egymast kizaro) csoportokra osztani? Az, hogy "debian", "web", "mail" inkabb role-nak hangzik.... Irj mar par peldat, hogy milyen hostjaid es milyen csoportjaid vannak...
- A hozzászóláshoz be kell jelentkezni
Inventoryban lehet változókat megadni hostokhoz és groupokhoz is. Felsorolhatod, hogy az adott hoston milyen portokat akarsz nyitva látni, és használhatod azt a templateből, vagy csinálhatsz flag jellegű változókat (pl fw_service_ns = true), és nézheted azt a templatedben. Ez kb ugyanaz, mint amit most csinálsz, de lehet, hogy a másik jobban kézre állna, pl mert group szinten tudnál default bekapcsolni ilyet, ha kell.
- A hozzászóláshoz be kell jelentkezni
Az hogy debian, melyik verzio stb pl kiderul ansible fact-ekbol is automatan, nem kell letarolnod.
Megadhatsz hostokhoz es csoportokhoz is valtozokat. Illetve lehet csoportoknak children-je is, pl
[dnscluster1]
ns[1:2] dns_tcp_access_enabled=true
[dnscluster2]
ns[3:7]
ns9
[dnscluster3]
ns42
[dnsclusters:children]
dnscluster[1:3]
[dnscluster2:vars]
dns_udp_ratelimit=1000
Hasznalhatod csoport neveket feltetelekben vagy valtozokat is, hogy van-e vagy mi az, ahogy ertekuket is felhasznalhatod pl iptables szabalynal.
- A hozzászóláshoz be kell jelentkezni