Lucrul cu array-uri în puppet (Administrarea sistemului, Păpușă)

bazic a intrebat.

Am o variabilă $IP = [ "91" , "92" ]și $IPPriveeInstance = "10.248.33.$IP".

Ați ghicit, vreau să folosesc această variabilă de 2 ori, dar când tipăresc IPPriveeInstance, , am obținut ieșirea ca fiind 10.248.33.9192.

Comentarii

  • Acest lucru ar trebui să fie întrebat pe stackoverflow.com. Am făcut o cerere pentru ca ea să fie transferată acolo. –  > Por Caleb.
  • @Caleb: Puppet este un limbaj de programare, dar este un limbaj de programare foarte specific foarte limitat pentru administrarea sistemelor. Este în totalitate pe subiect aici, chiar dacă este de asemenea on-topic pe StackOverflow. –  > Por freiheit.
  • Ce vă așteptați să imprimați? Dacă ați setat IPPriveeInstance variabila la o adresă sau alta, vei avea doar… o singură adresă. Dă-ne mai multe informații despre ceea ce încerci să realizezi (popularea unui fișier de configurare? transmiterea acestora către un modul?) și te vom putea ajuta. –  > Por Shane Madden.
  • Bună ziua, încerc să testez dacă fișierele (denumite cu IPPriveeInstance există în client), astfel încât este nevoie de o matrice, așa cum vedeți.Mulțumesc.  > Por bazic.
2 răspunsuri
Nan Liu

Puppet nu itera elementele de matrice. Exemplul de mai jos demonstrează cu inline_template, dar ar trebui să utilizați o funcție personalizată pentru a efectua această sarcină.

$ip      = ['91', '92']
$address = '10.248.33.'
$array   = inline_template("<%= ip.collect{|x| address+x.to_s} %>")

De asemenea, puteți scrie acest lucru prin intermediul Ruby DSL: http://projects.puppetlabs.com/projects/1/wiki/Ruby_Dsl

Kyle

Încerci să faci referire la întreaga matrice deodată, când vrei părțile individuale ale matricelor separat. Încercați acest lucru:

$IPPriveeInstance = "10.248.33.$IP[0]"
$IPPriveeInstance = "10.248.33.$IP[1]"

Primul indice într-un array este întotdeauna zero.

Comentarii

  • Îmi pare rău, dar nu pare să funcționeze.Mulțumesc oricum –  > Por bazic.