Adva van egy server cluster és abban egy server. Ez a server a telepítéskor megkapta a 10.x.y.z IP címet. Az üzembe álláskor azonban kapott, egy újabb, külső IP-t: a.b.c.d
Mivel a serverek configurálását puppet -el végzem erre is felkerült és ez állítja be az snmpd -t a serveren. A config augeas template -ből generálódik, oly módon, hogy egy facter -rel megnézem az eth0 -ra felhúzott global scope -u ip -t és beteszem egy fact -ba, aminek eth0_global_ip a neve.
Az augeas template ide vonatkozó része:
# Listen for connections
agentAddress udp:<%= eth0_global_ip %>:161,udp:127.0.0.1:161
Na ez eddig a mese része...
Az IP váltáskor, amíg jobb ötletem nem támad, ezen a node -on az snmp class -t kivettem a futtatandók közül és ekkor jött a meglepetés:
restore -oltam a korábbi configot, majd újra indítottam az snmpd -t. Helyre is jött minden, de a puppet következő futásakor vissza került a külső IP -s konfig.
Tehát a kérdés, a puppet honnan veszi, hogy ezt az osztályt (snmp) le kell futtatni és hogyan kérhetem meg, hogy felejtse el azt.
(Nem annyira szeretném átírni az snmp confoló osztályt, ha nem muszály)
- 1458 megtekintés
Hozzászólások
nincs véletlenül parent class beállitva, multkor engem az szivatott...
- A hozzászóláshoz be kell jelentkezni
Ez nekem is eszembe jutott, meg, hogy nincs-e valami kereszt hivatkozás, de nincs
----
올드보이
- A hozzászóláshoz be kell jelentkezni
gondolom akkor includolva sincs mashol a class...
ez igy eleg fura, miert allitja vissza. valahonnan jönnie kell a confignak.
- A hozzászóláshoz be kell jelentkezni
Az van, hogy hiera_include() van:
node default { if( $kernel == "Linux" ) { hiera_include("classes") } }
Ez pedig a server_fqdnje.yaml idevágó része:
classes: - common::network_time - common::compressor - common::http_ftp_clients - common::tools - ssh - ssh::server - nrpe - sysctl - users - ocsinventory::agent - serverinfo - vim - vim::vimrc
----
올드보이
- A hozzászóláshoz be kell jelentkezni
ha ezek nem huzzak be valahol az snmpt, akkor valoszinuleg a puppet nem generalta ujra a katalogust. log mit mond a futasra?
- A hozzászóláshoz be kell jelentkezni
En a helyedben nem az eth0 IP cimet vennem, hanem hieraban confolnek explicit IP cimet a halozatnak es arra referenciat adnek at az snmpd-nek. Sokkal uzembiztosabb, hiszen korant sem biztos, hogy az eth0 lesz a belso interfaced. Igy aztan nem fog megszivatni a puppet futtatas sem.
Ha kell egy pelda, tudod hogy hol talalsz meg. :)
--
Pásztor János
Sole Proprietor @ Opsbears
Development Lead @ IXOLIT
- A hozzászóláshoz be kell jelentkezni
Az alap eset megtervezésére igaz, de ettől még nem értem miért viselkedik így a puppet, hiszen ettől még előferdülhet, hogy egy osztályra nincs szükségem, mert amit az confolt az már az adott hoszton nem érvényes.
----
올드보이
- A hozzászóláshoz be kell jelentkezni
A --debug az mit mond? Nekem sokat szokott segiteni.
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer
- A hozzászóláshoz be kell jelentkezni
Egyelőre workaround -oltam a problémát, mivel a debug kimenetből csak annyi derül ki, hogy az snmp class lefut. a logban pedig csak a normál működés logsorai vannak.
Jövőhét folyamán csinálok egy teszt hostot aztán kiderül mi történik.
Jelenleg anyit csináltam, hogy hiera -ba betettem egy stringet, ami ha létezik akkor azt teszem a template -be ha nem létezik akkor az eredeti fact tartalmát.
Köszönöm a tippeket mindenkinek!
----
올드보이
- A hozzászóláshoz be kell jelentkezni
kozben az is eszembe jutott, hogy a puppet --graph kimenetebol latszania kell, hogy honnan van berantva a class
- A hozzászóláshoz be kell jelentkezni