Skip to content

Commit

Permalink
Merge pull request #225 from bradthurber/non-templated-cloud-config
Browse files Browse the repository at this point in the history
Ability to create non-templated cloud maps/providers/profiles
  • Loading branch information
gravyboat committed May 6, 2016
2 parents 0a601fc + b3a3fa4 commit 4388d06
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
31 changes: 31 additions & 0 deletions pillar.example
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,37 @@ salt:
# salt cloud config
cloud:
master: salt

# For non-templated custom cloud provider/profile/map files
providers:
provider-filename1.conf:
vmware-prod:
driver: vmware
user: myusernameprod
password: mypassword
vmware-nonprod:
driver: vmware
user: myusernamenonprod
password: mypassword
profiles:
profile-filename1.conf:
server-non-prod:
clonefrom: rhel6xtemplatenp
grains:
platform:
name: salt
realm: lab
subscription_level: standard
memory: 8GB
num_cpus: 4
password: sUpErsecretey
provider: vmware-nonprod
maps:
map-filename1.map:
server-non-prod:
- host.mycompany.com:
grains:
environment: dev1

# You can take profile and map templates from an alternate location
# if you want to write your own.
Expand Down
25 changes: 25 additions & 0 deletions salt/cloud.sls
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
{% from "salt/map.jinja" import salt_settings with context %}
{% set cloudmaps = salt['pillar.get']('salt:cloud:maps', {}) -%}
{% set cloudprofiles = salt['pillar.get']('salt:cloud:profiles', {}) -%}
{% set cloudproviders = salt['pillar.get']('salt:cloud:providers', {}) -%}
python-pip:
pkg.installed
Expand Down Expand Up @@ -58,6 +62,27 @@ salt-cloud-{{ dir }}:
- makedirs: True
{%- endfor %}
{% for key, value in cloudmaps.items() %}
/etc/salt/cloud.maps.d/{{ key }}:
file.managed:
- contents: |
{{ value|yaml(False) | indent(8) }}
{% endfor %}
{% for key, value in cloudprofiles.items() %}
/etc/salt/cloud.profiles.d/{{ key }}:
file.managed:
- contents: |
{{ value|yaml(False) | indent(8) }}
{% endfor %}
{% for key, value in cloudproviders.items() %}
/etc/salt/cloud.providers.d/{{ key }}:
file.managed:
- contents: |
{{ value|yaml(False) | indent(8) }}
{% endfor %}
salt-cloud-providers-permissions:
file.directory:
- name: {{ salt_settings.config_path }}/cloud.providers.d
Expand Down

0 comments on commit 4388d06

Please sign in to comment.