Robert Ranjan
Robert Ranjan

Reputation: 1876

how to configure salt-ssh's roster?

How to configure salt-ssh's roster file [/etc/salt/roster] with common parameter 'user' for all nodes?

I've already searched it on below docs but couldn't find it. https://docs.saltstack.com/en/latest/topics/ssh/index.html#salt-ssh-roster https://docs.saltstack.com/en/latest/topics/ssh/roster.html

here is what I have now:

host1-dev:
    host: host1-dev.mydomain.com
    user: myUser
host2-dev:
    host: host2-dev.mydomain.com
    user: myUser
host1-qa:
    host: host1-qa.mydomain.com
    user: myUser

Looking to simplify it like something below:

common:
    user: myUser
host1-dev:
    host: host1-dev.mydomain.com
host2-dev:
    host: host2-dev.mydomain.com
host1-qa:
    host: host1-qa.mydomain.com

Upvotes: 2

Views: 487

Answers (1)

Alex Zel
Alex Zel

Reputation: 688

Jinja to the rescue, although you can't achieve exactly what you want, but you can save yourself some typing with something like this:

{% set hosts = ['host1-dev.mydomain.com', 'host2-dev.mydomain.com', 'host1-qa.mydomain.com'] %}
{% set user = 'some_user' %}
{% set pass = 'some_pass' %}

{% for host in hosts %}
{{ host.split('.')[0] }}:
  host: {{ host }}
  user: {{ user }}
  passwd: {{ pass }}
{% endfor %}

Upvotes: 1

Related Questions