Added pillar option to redirect profile and map folders.master
# salt cloud config | # salt cloud config | ||||
cloud: | cloud: | ||||
master: salt | master: salt | ||||
folders: | |||||
- cloud.providers.d/key | |||||
- cloud.profiles.d | |||||
- cloud.maps.d | |||||
providers: | |||||
- ec2 | |||||
- gce | |||||
# You can take profile and map templates from an alternate location | |||||
# if you want to write your own. | |||||
template_sources: | |||||
providers: salt://salt/files/cloud.providers.d | |||||
profiles: salt://salt/files/cloud.profiles.d | |||||
maps: salt://salt/files/cloud.maps.d | |||||
# These settings are used by the default provider templates and | |||||
# only need to be set for the ones you're using. | |||||
aws_key: AWSKEYIJSHJAIJS6JSH | aws_key: AWSKEYIJSHJAIJS6JSH | ||||
aws_secret: AWSSECRETYkkDY1iQf9zRtl9+pW+Nm+aZY95 | aws_secret: AWSSECRETYkkDY1iQf9zRtl9+pW+Nm+aZY95 | ||||
gce_project: test | gce_project: test |
{% endif %} | {% endif %} | ||||
{% endif %} | {% endif %} | ||||
{% for folder in salt_settings.cloud.folders %} | |||||
{{ folder }}: | |||||
file.directory: | |||||
- name: /etc/salt/{{ folder }} | |||||
- user: root | |||||
- group: root | |||||
- file_mode: 744 | |||||
- dir_mode: 755 | |||||
- makedirs: True | |||||
{% endfor %} | |||||
{% for cert in pillar.get('salt_cloud_certs', {}) %} | {% for cert in pillar.get('salt_cloud_certs', {}) %} | ||||
{% for type in ['pem'] %} | {% for type in ['pem'] %} | ||||
cloud-cert-{{ cert }}-pem: | cloud-cert-{{ cert }}-pem: | ||||
file.managed: | file.managed: | ||||
- name: /etc/salt/cloud.providers.d/key/{{ cert }}.pem | |||||
- name: /etc/salt/pki/cloud/{{ cert }}.pem | |||||
- source: salt://salt/files/key | - source: salt://salt/files/key | ||||
- template: jinja | - template: jinja | ||||
- user: root | - user: root | ||||
- group: root | - group: root | ||||
- mode: 600 | - mode: 600 | ||||
- makedirs: True | |||||
- defaults: | - defaults: | ||||
key: {{ cert }} | key: {{ cert }} | ||||
type: {{ type }} | type: {{ type }} | ||||
{% endfor %} | {% endfor %} | ||||
{% endfor %} | {% endfor %} | ||||
{% for providers in salt_settings.cloud.providers %} | |||||
salt-cloud-profiles-{{ providers }}: | |||||
file.managed: | |||||
- name: /etc/salt/cloud.profiles.d/{{ providers }}.conf | |||||
- template: jinja | |||||
- source: salt://salt/files/cloud.profiles.d/{{ providers }}.conf | |||||
salt-cloud-providers-{{ providers }}: | |||||
file.managed: | |||||
- name: /etc/salt/cloud.providers.d/{{ providers }}.conf | |||||
{%- for dir, templ_path in salt_settings.cloud.template_sources.items() %} | |||||
salt-cloud-{{ dir }}: | |||||
file.recurse: | |||||
- name: /etc/salt/cloud.{{ dir }}.d | |||||
- source: {{ templ_path }} | |||||
- template: jinja | - template: jinja | ||||
- source: salt://salt/files/cloud.providers.d/{{ providers }}.conf | |||||
- makedirs: True | |||||
{%- endfor %} | |||||
salt-cloud-maps-{{ providers }}: | |||||
file.managed: | |||||
- name: /etc/salt/cloud.maps.d/{{ providers }}.conf | |||||
- template: jinja | |||||
- source: salt://salt/files/cloud.maps.d/{{ providers }}.conf | |||||
{% endfor %} | |||||
salt-cloud-providers-permissions: | |||||
file.directory: | |||||
- name: /etc/salt/cloud.providers.d | |||||
- user: root | |||||
- group: root | |||||
- file_mode: 600 | |||||
- dir_mode: 700 | |||||
- recurse: | |||||
- user | |||||
- group | |||||
- mode |
install_from_source: True | install_from_source: True | ||||
gitpython: | gitpython: | ||||
install_from_source: False | install_from_source: False | ||||
cloud: | |||||
template_sources: | |||||
providers: salt://salt/files/cloud.providers.d | |||||
profiles: salt://salt/files/cloud.profiles.d | |||||
maps: salt://salt/files/cloud.maps.d |
{% set cloud = salt['pillar.get']('salt:cloud', {}) -%} | {% set cloud = salt['pillar.get']('salt:cloud', {}) -%} | ||||
ec2_ubuntu_public: | ec2_ubuntu_public: | ||||
minion: | minion: | ||||
master: {{ cloud['master'] }} | |||||
master: {{ cloud.get('master', 'salt') }} | |||||
grains: | grains: | ||||
test: True | test: True | ||||
ssh_interface: public_ips | ssh_interface: public_ips | ||||
id: {{ cloud['aws_key'] }} | |||||
key: '{{ cloud['aws_secret'] }}' | |||||
private_key: /etc/salt/cloud.providers.d/key/key.pem | |||||
id: {{ cloud.get('aws_key', 'DEFAULT') }} | |||||
key: '{{ cloud.get('aws_secret', 'DEFAULT') }}' | |||||
private_key: /etc/salt/pki/cloud/ec2.pem | |||||
keyname: keyname | keyname: keyname | ||||
location: eu-west-1 | location: eu-west-1 | ||||
availability_zone: eu-west-1a | availability_zone: eu-west-1a |
# This file managed by Salt, do not edit by hand!! | # This file managed by Salt, do not edit by hand!! | ||||
{% set cloud = salt['pillar.get']('salt:cloud', {}) -%} | {% set cloud = salt['pillar.get']('salt:cloud', {}) -%} | ||||
gce: | gce: | ||||
project: "{{ cloud['gce_project'] }}" | |||||
service_account_email_address: "{{ cloud['gce_service_account_email_address'] }}" | |||||
service_account_private_key: "/etc/salt/cloud.providers.d/key.pem" | |||||
project: "{{ cloud.get('gce_project', 'DEFAULT') }}" | |||||
service_account_email_address: "{{ cloud.get('gce_service_account_email_address', 'DEFAULT') }}" | |||||
service_account_private_key: "/etc/salt/pki/cloud/gce.pem" | |||||
minion: | minion: | ||||
master: {{ cloud['master'] }} | |||||
master: {{ cloud.get('master', 'salt') }} | |||||
grains: | grains: | ||||
test: True | test: True | ||||
provider: gce | provider: gce |
rsos_{{ region|lower }}: | rsos_{{ region|lower }}: | ||||
minion: | minion: | ||||
master: {{ cloud['master'] }} | |||||
master: {{ cloud.get('master', 'salt') }} | |||||
grains: | grains: | ||||
region: {{ region|lower }} | region: {{ region|lower }} | ||||
protocol: ipv4 | protocol: ipv4 | ||||
compute_region: {{ region }} | compute_region: {{ region }} | ||||
provider: openstack | provider: openstack | ||||
user: {{ cloud['rsos_user'] }} | |||||
tenant: {{ cloud['rsos_tenant'] }} | |||||
apikey: {{ cloud['rsos_apikey'] }} | |||||
user: {{ cloud.get('rsos_user', 'DEFAULT') }} | |||||
tenant: {{ cloud.get('rsos_tenant', 'DEFAULT') }} | |||||
apikey: {{ cloud.get('rsos_apikey', 'DEFAULT') }} | |||||
{% endfor %} | {% endfor %} |
# This file is managed by Salt via {{ source }} | # This file is managed by Salt via {{ source }} | ||||
{% set cloud = salt['pillar.get']('salt:cloud', {}) -%} | |||||
saltify: | saltify: | ||||
provider: saltify | provider: saltify | ||||
minion: | minion: | ||||
master: {{ cloud['master'] }} | |||||
master: {{ cloud.get('master', 'salt') }} |