From 0c72d02792a0c2f9e43a2443fbcb753e7a55a750 Mon Sep 17 00:00:00 2001 From: keiran Date: Fri, 12 Apr 2019 21:46:06 -0400 Subject: [PATCH] iterate order; common; salt configs --- common/init.sls | 8 ++++++++ common/map.jinja | 25 +++++++++++++++++++++++++ salt/files/master.jinja | 6 ++++++ salt/files/minion.jinja | 5 +++++ salt/init.sls | 0 salt/master.sls | 9 +++++++++ salt/minion.sls | 9 +++++++++ ssh/files/authorized_keys.jinja | 4 +++- ssh/files/ssh_config.jinja | 8 ++++++-- top.sls | 4 ++++ 10 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 common/init.sls create mode 100644 common/map.jinja create mode 100644 salt/files/master.jinja create mode 100644 salt/files/minion.jinja create mode 100644 salt/init.sls create mode 100644 salt/master.sls create mode 100644 salt/minion.sls diff --git a/common/init.sls b/common/init.sls new file mode 100644 index 0000000..6224518 --- /dev/null +++ b/common/init.sls @@ -0,0 +1,8 @@ +{% from "common/map.jinja" import common with context %} + +'base_packages': + pkg.installed: + - pkgs: +{% for package in common['packages'] %} + - {{ package|yaml_encode }} +{% endfor %} diff --git a/common/map.jinja b/common/map.jinja new file mode 100644 index 0000000..97de96a --- /dev/null +++ b/common/map.jinja @@ -0,0 +1,25 @@ + +{% set common = salt['grains.filter_by']({ + 'Debian': { + 'packages': [ + 'vim' + ] + }, + 'RedHat': { + 'packages': [ + 'vim-enhanced' + ] + }, +}) %} + +{% set defaults = { + 'packages': [ + 'iftop' + ] +} %} + +{# deep merge #} +{% for key in defaults.keys() %} +{% do common[key].extend(defaults[key]) %} +{% endfor %} + diff --git a/salt/files/master.jinja b/salt/files/master.jinja new file mode 100644 index 0000000..458f276 --- /dev/null +++ b/salt/files/master.jinja @@ -0,0 +1,6 @@ +cli_summary: True +minion_data_cache: True +state_output: changes +top_file_merging_strategy: same +pillar_merge_lists: True +log_level: warning diff --git a/salt/files/minion.jinja b/salt/files/minion.jinja new file mode 100644 index 0000000..7904ea8 --- /dev/null +++ b/salt/files/minion.jinja @@ -0,0 +1,5 @@ +master: kpi.keiran.us +pillar_raise_on_missing: True +state_output: changes +log_level: warning +mysql.default_file: '/root/.my.cnf' diff --git a/salt/init.sls b/salt/init.sls new file mode 100644 index 0000000..e69de29 diff --git a/salt/master.sls b/salt/master.sls new file mode 100644 index 0000000..fd2a8ff --- /dev/null +++ b/salt/master.sls @@ -0,0 +1,9 @@ + +/etc/salt/master: + file.managed: + - source: 'salt://salt/files/master.jinja' + - template: jinja + - user: root + - group: root + - mode: 644 + diff --git a/salt/minion.sls b/salt/minion.sls new file mode 100644 index 0000000..93ab19d --- /dev/null +++ b/salt/minion.sls @@ -0,0 +1,9 @@ + +/etc/salt/minion: + file.managed: + - source: 'salt://salt/files/minion.jinja' + - template: jinja + - user: root + - group: root + - mode: 644 + diff --git a/ssh/files/authorized_keys.jinja b/ssh/files/authorized_keys.jinja index 5402aee..2f35fe1 100644 --- a/ssh/files/authorized_keys.jinja +++ b/ssh/files/authorized_keys.jinja @@ -1,4 +1,6 @@ # Managed by Salt -{% for comment, keydata in pillar['authorized_keys'].items() -%} +{% set comments = pillar['authorized_keys'].keys()|sort -%} +{% for comment in comments -%} +{% set keydata = pillar['authorized_keys'][comment] -%} {{keydata}} {{comment}} {% endfor -%} diff --git a/ssh/files/ssh_config.jinja b/ssh/files/ssh_config.jinja index 40b28bb..ef0758d 100644 --- a/ssh/files/ssh_config.jinja +++ b/ssh/files/ssh_config.jinja @@ -1,7 +1,11 @@ # Managed by salt -{% for host, config in pillar['ssh_config'].items() -%} +{% set hosts = pillar['ssh_config'].keys()|sort -%} +{% for host in hosts -%} +{% set config = pillar['ssh_config'][host] %} Host {{host}} -{%- for key, val in config.items() %} +{%- set keys = config.keys()|sort %} +{%- for key in keys %} +{%- set val = config[key] %} {{key}} {{val -}} {% endfor %} {% endfor -%} diff --git a/top.sls b/top.sls index 1a5ad96..3fe6d95 100644 --- a/top.sls +++ b/top.sls @@ -1,5 +1,9 @@ {{saltenv}}: '*': + - common - ssh + - salt.minion 'vps47492.inmotionhosting.com': - gitea + 'kpi.keiran.us': + - salt.master