Hiera value and using looping on it

26 views
Skip to first unread message

Tejas Bhosale

unread,
Dec 16, 2021, 2:05:01 PM12/16/21
to Puppet Users
Hi, I have heira value as an example as

```
profile::candy::virtualhosts:
  abc.example.com:
    listen: '80'
    location: [v1, v2]
    backend_port: [3000, 3001]
```

Can anyone tell me how can i loop it to create nginx config along with locations setup
i am able to create virtual host config using this code

```
$virtualhosts.each |$virtualhost, $opts| {

nginx::resource::server { "${virtualhost}":
  listen_port => Stdlib::Port($opts[listen]),
  ssl         => $ssl,
  ssl_cert          => if $ssl { "/etc/nginx/certs/playerzpot.pem" },
  ssl_key           => if $ssl { "/etc/nginx/certs/playerzpot.key" },
  ssl_redirect      => $ssl,
}
```
but want to loop locations and backend port to create nginx config like this

nginx::resource::location { "/v1-${virtualhost}" :
  ensure => present,
  ssl             => true,
  ssl_only        => true,
  location => "${location}",
  server => "${virtualhost}",
  index_files => [],
  proxy               => "http://127.0.0.1:4000/",
  proxy_set_header    => [ 'Upgrade $http_upgrade', "Connection 'upgrade'", 'Host $host' ],
  proxy_http_version  => '1.1',
}

Dirk Heinrichs

unread,
Dec 17, 2021, 2:04:31 AM12/17/21
to puppet...@googlegroups.com
Am Mittwoch, dem 15.12.2021 um 22:53 -0800 schrieb Tejas Bhosale:

I have heira value as an example as

```
profile::candy::virtualhosts:
  abc.example.com:
    listen: '80'
    location: [v1, v2]
    backend_port: [3000, 3001]
```

Use

profile::candy::virtualhosts:
  - name: abc.exacmple.com
    listen: '80'
    ...
  - name: def.example.com
    listen: '443'
    ...

and then in

$virtualhosts.each |$host| {
  ...
}

you can access the fields directly, like $host['name'], etc...

HTH...

Dirk
-- 
Dirk Heinrichs
Senior Systems Engineer, Delivery Pipeline
OpenText ™ Discovery | Recommind
Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
Vertretungsberechtigte Geschäftsführer Gordon Davies, Madhu Ranganathan, Christian Waida, Registergericht Amtsgericht Bonn, Registernummer HRB 10646
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail sind nicht gestattet.
Reply all
Reply to author
Forward
0 new messages