2
0
Commit Graph

230 Commits

Author SHA1 Message Date
Matthew X. Economou
827ed47a25 Filter all calls to formulas_git_opt through load_yaml
Jinja macros are not actually functions.  The only thing they can return
is a string.  In order to return structured data, the callee must
serialize it, and the caller must deserialize it.  This state formula
uses YAML as the intermediary, hence the occurrence of both the
`|yaml` (callee) and `|load_yaml` (caller) filters in its code.

The post-render "mapping values are not allowed here" error in
*salt/formulas.sls* or the broken rendering of
*salt/files/master.d/f_defaults.conf* happens because invocations of the
`formulas_git_opt` macro in several Jinja `set` statements do not get
deserialized, resulting in the trailing newline followed by three dot
characters (`...`), which YAML uses to signal the end of a document.
Correcting these rendering errors requires adding the necessary
deserialization code at those locations (i.e., filtering the macro call
through `|load_yaml`).
2015-09-03 14:56:45 -04:00
Shane Poage
f0e691fa13 Fixed conflict with git-formula by allowing either inclusion of formula to install git dependency or specify a package name to install with a custom state ID. 2015-09-01 18:33:18 -05:00
Brian Jackson
9779609bc4 Remove mapping test
This test isn't available in certain popular versions of Jinja (namely the one
installed by default in CentOS 6).
2015-08-27 17:37:53 -05:00
Shane Poage
addc6d5a26 Added logic to properly install pygit2 on ubuntu systems and made the pygit2 installation more flexible in general. 2015-08-20 02:46:16 -05:00
Nitin Madhok
5db269e560 Merge pull request #166 from irtnog/enable-salt-api-service
Configure the salt-api service to start at boot time
2015-08-09 07:58:04 -04:00
Simon Lloyd
02f7b279a1 Only watch salt-api package if install_packages=true
Also watch salt-api pkg instead of salt-master one.
2015-08-08 17:58:45 +02:00
jpic
825fd7cd77 Fixed pillar_roots generation for salt-master.
With a simple pillar like this::

    $ sudo salt-call --config-dir /srv/etc/bootstrap --pillar-root /srv/pillar pillar.get salt:pillar_roots
    local:
        ----------
        base:
            - /srv/pillar

This was generated in /etc/salt/master.d/f_defaults.conf::

    # highstate format, and is generally just key/value pairs.
    pillar_roots:base:- /srv/pillar
    #

Resulting in parse errors by salt::

    $ sudo salt '*' state.highstate
    [ERROR   ] Error parsing configuration file: /etc/salt/master.d/f_defaults.conf - while scanning a simple key
      in "<string>", line 531, column 1:
        pillar_roots:base:- /srv/pillar
        ^
    could not found expected ':'
      in "<string>", line 532, column 1:
        #
        ^
    [ERROR   ] Error parsing configuration file: /etc/salt/master.d/f_defaults.conf - while scanning a simple key
      in "<string>", line 531, column 1:
        pillar_roots:base:- /srv/pillar
        ^
    could not found expected ':'
      in "<string>", line 532, column 1:
        #
        ^

This patch will fix it as such::

          ID: salt-master
    Function: file.recurse
        Name: /etc/salt/master.d
      Result: True
     Comment: Recursively updated /etc/salt/master.d
     Started: 11:37:12.946823
    Duration: 6255.296 ms
     Changes:
              ----------
              /etc/salt/master.d/f_defaults.conf:
                  ----------
                  diff:
                      ---
                      +++
                      @@ -528,7 +528,9 @@
                       # Pillar is laid out in the same fashion as the file server, with environments,
                       # a top file and sls files. However, pillar data does not need to be in the
                       # highstate format, and is generally just key/value pairs.
                      -pillar_roots:base:- /srv/pillar
                      +pillar_roots:
                      +  base:
                      +    - /srv/pillar
                       #

Resulting in::

    # highstate format, and is generally just key/value pairs.
    pillar_roots:
      base:
        - /srv/pillar
    #
2015-08-06 11:37:55 +02:00
Matthew X. Economou
c014015e79 Configure the salt-api service to start at boot time 2015-08-02 21:17:36 -04:00
genus
4ff1a746d6 Add master_type option 2015-07-29 19:48:56 +03:00
puneet kandhari
2af4bf3bb5 Merge pull request #161 from genuss/sign_pubkey
Add options for mult-master setup
2015-07-27 06:58:48 -05:00
Matthew X. Economou
ba9cc2605c Use the py27-pygit2 package when installing pygit2 on FreeBSD 2015-07-24 17:06:15 -04:00
Matthew X. Economou
ea5a9f1f2c Merge remote-tracking branch 'upstream/master' into fix-freebsd-gitpython-package 2015-07-24 16:53:24 -04:00
Matthew X. Economou
ef275bd138 Allow customizing the GitPython package name. 2015-07-24 16:31:00 -04:00
Matthew X. Economou
b477990830 Use the py27-GitPython package when installing GitPython on FreeBSD. 2015-07-24 16:30:02 -04:00
Matthew X. Economou
85a426ccdf Add new salt:python_git key.
This key defaults to a value of `python-git`.
2015-07-24 16:27:52 -04:00
Matthew X. Economou
5b93601c78 Use the py27-salt package when installing salt-ssh on FreeBSD
On FreeBSD salt-ssh gets bundled into a single package with the other
SaltStack components (minion, master, etc.).
2015-07-24 16:11:23 -04:00
genus
a738198d8b Add verify_master_pubkey_sign 2015-07-24 17:58:41 +03:00
genus
fffd30fe17 Add master_sign_pubkey option 2015-07-24 17:41:49 +03:00
Brian Jackson
4c1f57792a Revert "Advance sal/api.sls, install rest_cherrypy or rest_tornado from pip."
This reverts commit 7bb82b0178.
2015-07-20 17:05:57 -05:00
Brian Jackson
6e98d508c4 Revert "Fix salt/api.sls."
This reverts commit 8a1b8dc9db.
2015-07-20 17:05:57 -05:00
Brian Jackson
d216a3f651 Revert "Install cherrypy/tornado from pip only if use_pip is True."
This reverts commit 90282eff03.
2015-07-20 17:05:56 -05:00
Brian Jackson
8448aa4021 Revert "Fix stuff suggested by @iggy."
This reverts commit c5ae289fa1.
2015-07-20 17:05:56 -05:00
Brian Jackson
ed3ab22a13 Revert "Add support for GitPython and salt-ssh on FreeBSD masters"
This reverts commit b03831c0b0.
2015-07-20 17:05:56 -05:00
Brian Jackson
f9cb912a65 Revert "salt.api state fails"
This reverts commit 22b8dde1ff.
2015-07-20 17:05:56 -05:00
Brian Jackson
ef73e4ce98 Revert "Change variable lookup to match usage in other states"
This reverts commit 14b466e022.
2015-07-20 17:05:54 -05:00
puneet kandhari
b04fc8c843 Merge pull request #154 from irtnog/add-freebsd-support-saltssh-gitpython
Add support for GitPython and salt-ssh on FreeBSD masters
2015-07-14 06:43:03 -07:00
Matthew X. Economou
14b466e022 Change variable lookup to match usage in other states
Done at the maintainer's request.
2015-07-14 09:40:16 -04:00
Marco Orovecchia
22b8dde1ff salt.api state fails
Seems there are several colons missing for salt.api to work correctly, hope I found all of them
2015-07-14 14:21:14 +02:00
Matthew X. Economou
b03831c0b0 Add support for GitPython and salt-ssh on FreeBSD masters
This change tweaks the GitPython package installation state to support
alternate package names (on FreeBSD, it's called "py27-GitPython").
Also, on FreeBSD salt-ssh is included in the "py27-salt" package by
default, requiring an update to `distro_map`.
2015-07-14 03:22:28 -04:00
René Jochum
c5ae289fa1 Fix stuff suggested by @iggy.
Signed-off-by: René Jochum <rene@jochums.at>
2015-07-13 22:31:32 +02:00
René Jochum
90282eff03 Install cherrypy/tornado from pip only if use_pip is True.
Signed-off-by: René Jochum <rene@jochums.at>
2015-07-13 22:08:20 +02:00
René Jochum
8a1b8dc9db Fix salt/api.sls.
Signed-off-by: René Jochum <rene@jochums.at>
2015-07-13 13:46:17 +02:00
René Jochum
7bb82b0178 Advance sal/api.sls, install rest_cherrypy or rest_tornado from pip.
Signed-off-by: René Jochum <rene@jochums.at>
2015-07-13 13:37:10 +02:00
Brian Jackson
779e6c9c63 Merge pull request #122 from matthew-parlette/master
Updated master.d/f_defaults for 2014.7
2015-07-07 12:43:01 -05:00
Devin Christensen
645b4c65ce Fix syntax error 2015-06-19 15:33:16 -06:00
puneet kandhari
8fcb42819b Merge pull request #146 from quixoten/fix_syndic
Fix syndic requisites
2015-06-17 11:28:28 -05:00
Devin Christensen
8479111cbd Fix syndic requisites
The syndic service was depending upon itself, which caused the salt run
to fail. This commit fixes that by depending on the salt-master service
rather than the salt-syndic service. I also made it more general by
using IDs to specify the provider rather than the name, which is a bit
less reliable.
2015-06-17 09:53:31 -06:00
Petr Demin
eb421c676f formulas.jinja: python 2.6 support 2015-06-17 17:51:40 +03:00
Petr Demin
d4180295e3 formulas.jinja: python 2.6 support 2015-06-17 17:12:28 +03:00
Niels Abspoel
6ec31374cb Remove hardcoded paths with {{ slspath }} variable 2015-06-09 23:05:49 +02:00
Matt Willsher
1cf72d85f8 The git command line tool is a requirement of pygit2 2015-06-05 21:27:01 +01:00
Matt Willsher
e2d192ba89 Improvements to Enterprise Linux family OSs.
* Install pygit from package
* Add Official Salt ZeroMQ 4 COPR repository

Note that Salt itself is assumed to already to be available to the system via yum, via EPEL for example
2015-06-04 17:35:40 +01:00
puneet kandhari
145b58a9d3 Remove Duplicates from defaults.yaml and map.jinja 2015-05-26 13:28:17 -05:00
Niels Abspoel
14c262fdad fix empty formulas list in pillar with empty dic. 2015-05-17 15:39:49 +02:00
Edvinas Klovas
8992e15882 fix typo 2015-05-16 15:51:19 +03:00
Edvinas Klovas
47b37f2ffb Fix pillar_roots configuration format in master
This commit fixes how `pillar_roots` are generated and after this fix the
generated configuration does not contain any unnecessary new lines:

```yaml
pillar_roots:
  base:
     /srv/salt/dir1
  dev:
     /srv/salt/dir2
     /srv/salt/dir3
  locale:
     /srv/salt/dir4
```

Before this commit the pillar_roots in `f_defaults.conf` for master would be
generated with a lot of empty lines in between directories, like this:

```yaml
pillar_roots:

  base:

     /srv/salt/dir1

  dev:

     /srv/salt/dir2

     /srv/salt/dir3

  local:

     /srv/salt/dir4

```

The minion configuration is not affected and renders fine.
2015-05-16 15:15:56 +03:00
Javier Domingo
4344a1311b Cleanup template for easier user reading
The user will already have it's /etc/salt/minion file, so it doesn't need all this info, and it makes easier to know what has been generated and what not
2015-05-08 22:33:43 +02:00
Andrew Vant
a01249a7fc ec2/gce profiles/providers are no longer configured if they are not used.
Needed because salt-cloud will attempt to load them even if they are
filled with invalid default values, creating error spam.
2015-04-17 10:48:47 -04:00
Matt Parlette
efcefd6579 Updated master.d/f_defaults for 2014.7
Added config setting for:

* pillar_source_merging_strategy
2015-04-15 15:36:09 -04:00
Brian Jackson
15e63e8fd0 Merge pull request #117 from andrew-vant/cloud-templates-redirect
Added pillar option to redirect profile and map folders.
2015-04-14 11:34:12 -05:00
Andrew Vant
e632b8bcb5 Cloud file.recurse loop no longer hardcodes folder list. 2015-04-13 16:08:11 -04:00
Forrest Alvarez
d3adb685b6 Change spaces to dashes in IDs for ssh.sls 2015-04-10 16:11:19 -07:00
Simon Lloyd
462455ead9 Exclude require statement when install_packages is False.
The 'require' statement needs a list as input, but doesn't get
any input when install_packages is set to False.
2015-04-09 17:16:15 +02:00
Andrew Vant
f0e9c2df87 Enforced root-only permissions on cloud.providers.d.
As mentioned in issue #118, provider files may contain passwords
or API keys and should be restricted. Profiles/maps are probably
OK with the defaults.
2015-04-06 11:24:41 -04:00
Andrew Vant
f3ed6e1828 cloud.providers.d can now be redirected.
This obsoletes the salt☁️folders and salt☁️providers pillar
entries. Provider keys have been moved to /etc/salt/pki/cloud.
2015-04-03 19:30:26 -04:00
Andrew Vant
7e074dc379 Supplied default values for all pillar queries in provider templates.
These aren't intended to function; they're here to allow the use of
file.recurse on the provider folder, without requiring the user
to provide pillar data for templates they're not using.
2015-04-03 18:47:08 -04:00
Andrew Vant
fb1d7e8d3b Added pillar option to redirect profile and map folders. 2015-04-03 17:33:25 -04:00
Andrew Vant
11efee54c3 Added mine_functions to f_defaults.conf. 2015-04-03 14:34:34 -04:00
Nitin Madhok
a11c39cf32 Merge pull request #111 from iggy/master
Switch config file.recurse to clean by default and tell it to ignore _*
2015-04-01 05:08:01 -04:00
Matthew X. Economou
943d7f2dc1 Reverts lookup of salt_cloud_certs to original pillar key, in line with existing documentation and the certificate template file.
Please refer to issue https://github.com/saltstack-formulas/salt-formula/issues/113.
2015-03-30 13:54:50 -04:00
Niels Abspoel
9ae8a4d746 Fix recursion in api.service 2015-03-28 22:29:01 +01:00
Brian Jackson
7649c26a0d Switch config file.recurse to clean by default and tell it to ignore _*
Salt writes it's schedule file to /etc/salt/{minion,master}.d/_schedule.conf

We don't want to stomp all over Salt's files, but we do want a pristine
starting point to lay down our managed config. So we use clean: True on the
file.recurse call, but we tell it to ignore files that start with an _

We have to rename the current config file (_defaults.conf) because it will be
ignored by the rule that ignores Salt's _* config files.

This also means we need to clean up old config files (_defaults.conf) and
restart the service if we cleaned it up.
2015-03-27 17:58:05 -05:00
Brian Jackson
4533cc7d0e Add modules to install gitfs backend dependencies
Add modules for gitfs dependencies and documentation for how to use them.
2015-03-25 21:52:29 -05:00
Brian Jackson
924c04c0d8 Add setting to not install packages
If you are installing Salt via git/pip, the formula will try to overwrite your
install with packaged versions. This setting makes it possible to avoid that.
2015-03-24 12:08:08 -05:00
Brian Jackson
8ebb7f57df Stop using clean: True on /etc/salt/{minion,master}.d
New versions of Salt put config files in /etc/salt/{minion,master}.d. We don't
want to erase them by using a clean: True on the file.recurse. This is a
backward incompatible change, but it's necessary to avoid deleting Salt config
files.

Resolves #104
2015-03-24 10:46:25 -05:00
Brian Jackson
cb3aa80c62 Don't overwrite salt variable
Using a variable named salt is a bad idea when salt already has a variable
named salt.
2015-03-16 23:39:32 -05:00
Niels Abspoel
5785091305 Added salt-api support 2015-03-08 00:01:28 +01:00
Niels Abspoel
5d09355c84 fix suse os_family 2015-03-07 11:24:50 +01:00
Niels Abspoel
90f23948ef create config option for mine_interval 2015-02-20 20:43:14 +01:00
Niels Abspoel
b8e53771f3 add mine_get function to master config 2015-02-19 21:59:44 +01:00
Will Saxon
ae8e4ca492 don't try to load pkgrepo on non-Debian distros
fixes #83 by wrapping contents of pkgrepo/init.sls in an {% if %}.

Change-Id: I8260fdf5cf802c0b28197516da374add6c3002a2
2015-02-07 19:26:59 -05:00
Niels Abspoel
23fd8b64af Fix #39 multi master support to minion
This will fix #39

And it will be backwards compatible with the current pillar configuration.
2015-02-06 22:27:55 +01:00
Niels Abspoel
7ddc1692ec added rest_tornado to _defaults.conf
see pillar.example for configuration
2015-02-06 18:46:32 +01:00
Nitin Madhok
f39fff2329 Merge pull request #90 from aboe76/master
Updated map.jinja for archlinux package convention
2015-02-06 02:16:17 +05:30
Jimmy Tang
2e30a44e41 saltify provider should set correct master
This is necessary for the correct settings on the minions when saltifying new hosts
2015-01-26 17:41:19 +00:00
Nitin Madhok
fa6c39eccd Revert "Add mine_functions to master config template" 2015-01-16 02:20:43 +05:30
Jimmy Tang
deee69319f Add mine_functions to master config template 2015-01-15 16:15:38 +00:00
Niels Abspoel
7b4104cf6e updated archlinux map.jinja, to install salt-zmq
updated the map style without the base='default' parameter
2015-01-13 20:07:46 +01:00
Niels Abspoel
ea4623b0a3 fix salt-ssh on Arch and Opensuse 2015-01-11 20:35:29 +01:00
Simon Lloyd
cb03e885d4 Fix: pkgs is undefined
Update sls files to match name change in map.jinja.
2015-01-11 19:31:05 +01:00
Niels Abspoel
acf5832f68 fix #84 with same logic as dnsmasq-formula 2015-01-11 12:21:42 +01:00
Niels Abspoel
4dc0044772 update use_lookup_map with merges from upstream 2015-01-07 21:06:02 +01:00
Niels Abspoel
daf04c2688 Merge branch 'master' into use_lookup_map.jinja 2015-01-07 21:03:52 +01:00
Tim O'Guin
b19c3acc77 merged with upstream 2015-01-06 13:10:59 -06:00
Niels Abspoel
896578a75a Removed package_map lookup
Added map.jinja solution more in line with other formulas,
This also improves issue #30

and pull request #30
2014-12-31 11:52:31 +01:00
Niels Abspoel
5bed5368e2 updated minion _defaults.conf to version 2014.7 2014-12-27 00:00:48 +01:00
Forrest
77c0ecd729 Merge pull request #78 from qbcode/master
Add saltify provider, map and profile templates
2014-12-24 12:45:01 -08:00
Raphaël Hertzog
7fb86b9076 Fix the handling of event_return_whitelist/event_return_blacklist
If those options are set in pillar data, the jinja template
salt/files/master.d/_defaults.conf would fail to compile trying to
evaluate non-existing variables.

Replace those variables with the corresponding dictionnary entries.
2014-12-24 16:25:51 +01:00
Raphaël Hertzog
d4ae38f825 Import the salt/formulas.jinja template with context
This is only needed for salt versions older than 2014.7 that do not
define the global "salt" variable in such context.
2014-12-24 16:19:43 +01:00
Raphaël Hertzog
445108f87a Avoid “set salt” jinja calls that mask the usual salt variable
Most include do not expect salt to be something else than the usual salt
variable giving access to all the salt modules. Instead we use cfg_salt.
And for consistency we rename the master/minion variables to
cfg_master/cfg_minion too.
2014-12-24 16:12:40 +01:00
Jimmy Tang
b687659bff Initial add of dummy saltify settings
This commit also provides a more concrete example of a 'host' to
be saltified.  Users can do

    salt-cloud -p make_salty someinstance

or

    salt-cloud -m /etc/salt/cloud.maps.d/foo.conf

Either which way the online docs should really be updated with more
concrete examples.
2014-12-24 08:40:10 +00:00
Wolodja Wentland
98917adad2 Merge pull request #77 from rhertzog/misc-bugfixes
FIxes for nodegroups/log_granular_levels settings and small cleanups
2014-12-24 08:52:29 +01:00
Raphaël Hertzog
8a828b506e Use items() method instead of iteritems() for Python 3 compatibility
In Python 3, dict.items() is already an iterator while dict.iteritems() no
longer exits. In Python 2, dict.items() is not an iterator but it works
and the small performance hit doesn't really matter for the salt config
pillar data which is really small.
2014-12-23 17:42:43 +01:00
Raphaël Hertzog
2f2cd972ac Use items() method to loop over nodegroups/log_granular_levels dictionaries
Otherwise you get an “ValueError: too many values to unpack” exception
when you make use of those entries in your pillar data.
2014-12-23 17:35:26 +01:00
Raphaël Hertzog
f46b4f29d8 Add new “salt.formulas” state to manage salt formulas
This state downloads formulas from git repositories and ensures
that they are recorded in the file_roots setting.
2014-12-23 17:24:19 +01:00
Seth House
02f8debea8 Merge pull request #72 from aboe76/update_config_2014.7
Updated master config file to 2014.7
2014-12-22 16:08:32 -07:00
Raphaël Hertzog
339adddfcc Add new “salt.pkgrepo” state
This state enables the official saltstack package repository in order to
always benefit from the latest version. This state currently only works on
Debian and Ubuntu, and aims to implement the installation recommendations
of the official documentation:
http://docs.saltstack.com/en/latest/topics/installation/index.html
2014-12-22 17:09:51 +01:00
Raphaël Hertzog
b93ec22244 Add a “salt.standalone” state 2014-12-21 15:41:16 +01:00
Niels Abspoel
5029504212 Updated master config file to 2014.7
Fixed explanations, and improved logic code to client_acl
2014-12-19 23:18:08 +01:00
Niels Abspoel
af7f9d722a more improvements in _defaults.conf
better newlines with iterations.
2014-12-14 20:38:47 +01:00