Merge branch '2016.3' into 'develop'

Conflicts:
  - doc/topics/releases/2015.8.4.rst
  - doc/topics/releases/2015.8.5.rst
  - doc/topics/thorium/index.rst
  - salt/cloud/clouds/opennebula.py
  - salt/engines/thorium.py
  - salt/loader.py
  - salt/modules/archive.py
  - salt/modules/boto_vpc.py
  - salt/modules/data.py
  - salt/modules/reg.py
  - salt/pillar/mysql.py
  - salt/runners/cache.py
  - salt/states/archive.py
  - salt/states/cron.py
  - salt/states/file.py
  - salt/states/glance.py
  - salt/states/reg.py
  - salt/thorium/__init__.py
  - salt/thorium/check.py
  - salt/thorium/file.py
  - salt/thorium/reg.py
  - salt/utils/jid.py
  - salt/utils/parsers.py
  - setup.py
This commit is contained in:
rallytime 2016-02-12 14:38:50 -07:00
commit 73d73e80c1
414 changed files with 4336 additions and 3466 deletions

View file

@ -2,67 +2,108 @@
What is SaltStack?
==================
Salt is a new approach to infrastructure management. Easy enough to get
running in minutes, scalable enough to manage tens of thousands of servers,
and fast enough to communicate with them in *seconds*.
SaltStack makes software for complex systems management at scale.
SaltStack is the company that created and maintains the Salt Open
project and develops and sells SaltStack Enterprise software, services
and support. Easy enough to get running in minutes, scalable enough to
manage tens of thousands of servers, and fast enough to communicate with
them in *seconds*.
Salt delivers a dynamic communication bus for infrastructures that can be used
for orchestration, remote execution, configuration management and much more.
Salt is a new approach to infrastructure management built on a dynamic
communication bus. Salt can be used for data-driven orchestration,
remote execution for any infrastructure, configuration management for
any app stack, and much more.
Documentation
=============
Download Salt Open
==================
Salt Open is tested and packaged to run on CentOS, Debian, RHEL, Ubuntu,
Windows. Download Salt Open and get started now.
`<https://repo.saltstack.com/>`_
`Installation Instructions <https://docs.saltstack.com/en/latest/topics/installation/index.html>`_
SaltStack Documentation
=======================
Installation instructions, getting started guides, and in-depth API
documentation.
http://docs.saltstack.com
`<https://docs.saltstack.com/en/getstarted/>`_
IRC Chat
========
`<https://docs.saltstack.com/en/latest/>`_
Join the vibrant, helpful and positive SaltStack chat room in Freenode at
#salt. There is no need to introduce yourself, or ask permission to join in,
just help and be helped! Make sure to wait for an answer, sometimes it may take
a few moments for someone to reply.
Get SaltStack Support and Help
==============================
http://webchat.freenode.net/?channels=salt&uio=Mj10cnVlJjk9dHJ1ZSYxMD10cnVl83
**IRC Chat** - Join the vibrant, helpful and positive SaltStack chat room in
Freenode at #salt. There is no need to introduce yourself, or ask permission to
join in, just help and be helped! Make sure to wait for an answer, sometimes it
may take a few moments for someone to reply.
Salt Air
========
`<http://webchat.freenode.net/?channels=salt&uio=Mj10cnVlJjk9dHJ1ZSYxMD10cnVl83>`_
The SaltStack YouTube channel is filled with Salt videos and presentations.
Watch the latest Salt Air episodes for updates from Thomas on development,
catch tutorials, and stay on the cutting edge of Salt.
**Mailing List** - The SaltStack community users mailing list is hosted by
Google groups. Anyone can post to ask questions about SaltStack products and
anyone can help answer. Join the conversation!
http://www.youtube.com/user/saltstack
Mailing List
============
The SaltStack community users mailing list is hosted by Google groups. Anyone
can post to ask questions about SaltStack products and anyone can help answer.
Join the conversation!
https://groups.google.com/forum/#!forum/salt-users
`<https://groups.google.com/forum/#!forum/salt-users>`_
You may subscribe to the list without a Google account by emailing
salt-users+subscribe@googlegroups.com and you may post to the list by emailing
salt-users@googlegroups.com
**Reporting Issues** - To report an issue with Salt, please follow the
guidelines for filing bug reports:
`<https://docs.saltstack.com/en/develop/topics/development/reporting_bugs.html>`_
**SaltStack Support** - If you need dedicated, prioritized support, please
consider a SaltStack Support package that fits your needs:
`<http://www.saltstack.com/support>`_
Engage SaltStack
================
`SaltConf`_, **User Groups and Meetups** - SaltStack has a vibrant and `global
community`_ of customers, users, developers and enthusiasts. Connect with other
Salted folks in your area of the world, or join `SaltConf16`_, the SaltStack
annual user conference, April 19-21 in Salt Lake City. Please let us know if
you would like to start a user group or if we should add your existing
SaltStack user group to this list by emailing: info@saltstack.com
**SaltStack Training** - Get access to proprietary `SaltStack education
offerings`_ through instructor-led training offered on-site, virtually or at
SaltStack headquarters in Salt Lake City. SaltStack Enterprise training helps
increase the value and effectiveness of SaltStack software for any customer and
is a prerequisite for coveted `SaltStack Certified Engineer (SSCE)`_ status.
SaltStack training is also available through several `SaltStack professional
services`_ offerings.
**Follow SaltStack on -**
* YouTube - `<http://www.youtube.com/saltstack>`_
* Twitter - `<http://www.twitter.com/saltstack>`_
* Facebook - `<https://www.facebook.com/SaltStack/>`_
* LinkedIn - `<https://www.linkedin.com/company/salt-stack-inc>`_
* LinkedIn Group - `<https://www.linkedin.com/groups/4877160>`_
* Google+ - `<https://plus.google.com/b/112856352920437801867/+SaltStackInc/posts>`_
.. _SaltConf: http://www.youtube.com/user/saltstack
.. _global community: http://www.meetup.com/pro/saltstack/
.. _SaltConf16: http://saltconf.com/
.. _SaltStack education offerings: http://saltstack.com/training/
.. _SaltStack Certified Engineer (SSCE): http://saltstack.com/certification/
.. _SaltStack professional services: http://saltstack.com/services/
Developing Salt
===============
The Salt development team is welcoming, positive, and dedicated to helping
people get new code and fixes into SaltStack projects. Log into GitHub and get
started with one of the largest developer communities in the world. The following
links should get you started:
The Salt development team is welcoming, positive, and dedicated to
helping people get new code and fixes into SaltStack projects. Log into
GitHub and get started with one of the largest developer communities in
the world. The following links should get you started:
* https://github.com/saltstack
* http://docs.saltstack.com/en/latest/topics/development/index.html
* `<https://github.com/saltstack>`_
* `<https://docs.saltstack.com/en/latest/topics/development/index.html>`_
Reporting Issues
================
To report an issue with Salt, please follow the guidelines for filing bug reports:
* http://docs.saltstack.com/en/develop/topics/development/reporting_bugs.html

View file

@ -44,7 +44,7 @@
#log_level_logfile: info
# The date and time format used in log messages. Allowed date/time formating
# The date and time format used in log messages. Allowed date/time formatting
# can be seen here:
#
# http://docs.python.org/library/time.html#time.strftime

View file

@ -621,6 +621,43 @@
# Recursively merge lists by aggregating them instead of replacing them.
#pillar_merge_lists: False
# A master can cache pillars locally to bypass the expense of having to render them
# for each minion on every request. This feature should only be enabled in cases
# where pillar rendering time is known to be unsatisfactory and any attendent security
# concerns about storing pillars in a master cache have been addressed.
#
# When enabling this feature, be certain to read through the additional pillar_cache_*
# configuration options to fully understand the tuneable parameters and their implications.
#
#pillar_cache: False
# If and only if a master has set `pillar_cache: True`, the cache TTL controls the amount
# of time, in seconds, before the cache is considered invalid by a master and a fresh
# pillar is recompiled and stored.
#
# pillar_cache_ttl: 3600
# If an only if a master has set `pillar_cache: True`, one of several storage providers
# can be utililzed.
#
# `disk`: The default storage backend. This caches rendered pillars to the master cache.
# Rendered pillars are serialized and deserialized as msgpack structures for speed.
# Note that pillars are stored UNENCRYPTED. Ensure that the master cache
# has permissions set appropriately. (Sane defaults are provided.)
#
#`memory`: [EXPERIMENTAL] An optional backend for pillar caches which uses a pure-Python
# in-memory data structure for maximal performance. There are several cavaets,
# however. First, because each master worker contains its own in-memory cache,
# there is no guarantee of cache consistency between minion requests. This
# works best in situations where the pillar rarely if ever changes. Secondly,
# and perhaps more importantly, this means that unencrypted pillars will
# be accessible to any process which can examine the memory of the salt-master!
# This may represent a substantial security risk.
#
#pillar_cache_backend: disk
##### Syndic settings #####
##########################################
@ -738,7 +775,7 @@
# If using 'log_granular_levels' this must be set to the highest desired level.
#log_level_logfile: warning
# The date and time format used in log messages. Allowed date/time formating
# The date and time format used in log messages. Allowed date/time formatting
# can be seen here: http://docs.python.org/library/time.html#time.strftime
#log_datefmt: '%H:%M:%S'
#log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'
@ -774,11 +811,18 @@
##### Node Groups ######
##########################################
# Node groups allow for logical groupings of minion nodes. A group consists of a group
# name and a compound target.
# Node groups allow for logical groupings of minion nodes. A group consists of
# a group name and a compound target. Nodgroups can reference other nodegroups
# with 'N@' classifier. Ensure that you do not have circular references.
#
#nodegroups:
# group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
# group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com'
# group2: 'G@os:Debian and foo.domain.com'
# group3: 'G@os:Debian and N@group1'
# group4:
# - 'G@foo:bar'
# - 'or'
# - 'G@foo:baz'
##### Range Cluster settings #####

View file

@ -548,7 +548,7 @@
# Default: 'warning'
#log_level_logfile:
# The date and time format used in log messages. Allowed date/time formating
# The date and time format used in log messages. Allowed date/time formatting
# can be seen here: http://docs.python.org/library/time.html#time.strftime
#log_datefmt: '%H:%M:%S'
#log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

View file

@ -13,7 +13,7 @@
#default_include: minion.d/*.conf
# Backwards compatibility option for proxymodules created before 2015.8.2
# This setting will default to 'False' in the Boron release
# This setting will default to 'False' in the 2016.3.0 release
# Setting this to True adds proxymodules to the __opts__ dictionary.
# This breaks several Salt features (basically anything that serializes
# __opts__ over the wire) but retains backwards compatibility.
@ -510,7 +510,7 @@
# Default: 'warning'
#log_level_logfile:
# The date and time format used in log messages. Allowed date/time formating
# The date and time format used in log messages. Allowed date/time formatting
# can be seen here: http://docs.python.org/library/time.html#time.strftime
#log_datefmt: '%H:%M:%S'
#log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

View file

@ -3014,12 +3014,6 @@ source_file = _build/locale/ref/clouds/all/index.pot
source_lang = en
source_name = ref/clouds/all/index.rst
[salt.ref--clouds--all--salt_cloud_clouds_botocore_aws]
file_filter = locale/<lang>/LC_MESSAGES/ref/clouds/all/salt.cloud.clouds.botocore_aws.po
source_file = _build/locale/ref/clouds/all/salt.cloud.clouds.botocore_aws.pot
source_lang = en
source_name = ref/clouds/all/salt.cloud.clouds.botocore_aws.rst
[salt.ref--clouds--all--salt_cloud_clouds_cloudstack]
file_filter = locale/<lang>/LC_MESSAGES/ref/clouds/all/salt.cloud.clouds.cloudstack.po
source_file = _build/locale/ref/clouds/all/salt.cloud.clouds.cloudstack.pot
@ -3056,12 +3050,6 @@ source_file = _build/locale/ref/clouds/all/salt.cloud.clouds.joyent.pot
source_lang = en
source_name = ref/clouds/all/salt.cloud.clouds.joyent.rst
[salt.ref--clouds--all--salt_cloud_clouds_libcloud_aws]
file_filter = locale/<lang>/LC_MESSAGES/ref/clouds/all/salt.cloud.clouds.libcloud_aws.po
source_file = _build/locale/ref/clouds/all/salt.cloud.clouds.libcloud_aws.pot
source_lang = en
source_name = ref/clouds/all/salt.cloud.clouds.libcloud_aws.rst
[salt.ref--clouds--all--salt_cloud_clouds_linode]
file_filter = locale/<lang>/LC_MESSAGES/ref/clouds/all/salt.cloud.clouds.linode.po
source_file = _build/locale/ref/clouds/all/salt.cloud.clouds.linode.pot

View file

@ -11,7 +11,6 @@ Full list of Salt Cloud modules
:template: autosummary.rst.tmpl
aliyun
botocore_aws
cloudstack
digital_ocean
dimensiondata
@ -19,7 +18,6 @@ Full list of Salt Cloud modules
gce
gogrid
joyent
libcloud_aws
linode
lxc
msazure

View file

@ -1,6 +0,0 @@
==============================
salt.cloud.clouds.botocore_aws
==============================
.. automodule:: salt.cloud.clouds.botocore_aws
:members:

View file

@ -1,6 +0,0 @@
==============================
salt.cloud.clouds.libcloud_aws
==============================
.. automodule:: salt.cloud.clouds.libcloud_aws
:members:

View file

@ -216,7 +216,7 @@ The directory to store the pki authentication keys.
``extension_modules``
---------------------
.. versionchanged:: Boron
.. versionchanged:: 2016.3.0
The default location for this directory has been moved. Prior to this
version, the location was a directory named ``extmods`` in the Salt
cachedir (on most platforms, ``/var/cache/salt/extmods``). It has been
@ -2679,6 +2679,10 @@ A group consists of a group name and a compound target.
group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com'
group2: 'G@os:Debian and foo.domain.com'
group3: 'G@os:Debian and N@group1'
group4:
- 'G@foo:bar'
- 'or'
- 'G@foo:baz'
More information on using nodegroups can be found :ref:`here <targeting-nodegroups>`.

View file

@ -393,7 +393,7 @@ to enable set grains_cache to ``True``.
``grains_deep_merge``
---------------------
.. versionadded:: Boron
.. versionadded:: 2016.3.0
Default: ``False``

View file

@ -0,0 +1,24 @@
.. _all-salt.grains:
===================================
Full list of builtin grains modules
===================================
.. currentmodule:: salt.grains
.. autosummary::
:toctree:
:template: autosummary.rst.tmpl
chronos
core
disks
esxi
extra
fx2
junos
marathon
mdadm
opts
philips_hue
rest_sample

View file

@ -0,0 +1,6 @@
===================
salt.grains.chronos
===================
.. automodule:: salt.grains.chronos
:members:

View file

@ -0,0 +1,6 @@
================
salt.grains.core
================
.. automodule:: salt.grains.core
:members:

View file

@ -0,0 +1,6 @@
=================
salt.grains.disks
=================
.. automodule:: salt.grains.disks
:members:

View file

@ -0,0 +1,6 @@
================
salt.grains.esxi
================
.. automodule:: salt.grains.esxi
:members:

View file

@ -0,0 +1,6 @@
=================
salt.grains.extra
=================
.. automodule:: salt.grains.extra
:members:

View file

@ -0,0 +1,6 @@
===============
salt.grains.fx2
===============
.. automodule:: salt.grains.fx2
:members:

View file

@ -0,0 +1,6 @@
=================
salt.grains.junos
=================
.. automodule:: salt.grains.junos
:members:

View file

@ -0,0 +1,6 @@
====================
salt.grains.marathon
====================
.. automodule:: salt.grains.marathon
:members:

View file

@ -0,0 +1,6 @@
=================
salt.grains.mdadm
=================
.. automodule:: salt.grains.mdadm
:members:

View file

@ -0,0 +1,6 @@
================
salt.grains.opts
================
.. automodule:: salt.grains.opts
:members:

View file

@ -0,0 +1,6 @@
=======================
salt.grains.philips_hue
=======================
.. automodule:: salt.grains.philips_hue
:members:

View file

@ -0,0 +1,6 @@
=======================
salt.grains.rest_sample
=======================
.. automodule:: salt.grains.rest_sample
:members:

View file

@ -12,6 +12,7 @@ This section contains a list of the Python modules that are used to extend the v
../ref/beacons/all/index
../ref/engines/all/index
../ref/file_server/all/index
../ref/grains/all/index
../ref/modules/all/index
../ref/netapi/all/index
../ref/output/all/index

View file

@ -3,4 +3,4 @@ salt.proxy.esxi
===============
.. automodule:: salt.proxy.esxi
:members:
:members:

View file

@ -3,4 +3,4 @@ salt.proxy.fx2
==============
.. automodule:: salt.proxy.fx2
:members:
:members:

View file

@ -1,5 +1,6 @@
salt.proxy.junos module
=======================
================
salt.proxy.junos
================
.. automodule:: salt.proxy.junos
:members:

View file

@ -1,5 +1,6 @@
salt.proxy.rest_sample module
=============================
======================
salt.proxy.rest_sample
======================
.. automodule:: salt.proxy.rest_sample
:members:

View file

@ -1,5 +1,6 @@
salt.proxy.ssh_sample module
============================
=====================
salt.proxy.ssh_sample
=====================
.. automodule:: salt.proxy.ssh_sample
:members:

View file

@ -78,7 +78,7 @@ the json, yaml, or pprint outputters:
.. _state-layers-sls:
SLS
====
===
Above "High Data", the logical layers are no longer technically required to be
executed, or to be executed in a hierarchy. This means that how the High data
@ -122,13 +122,13 @@ To execute the High State call ``state.highstate``:
salt '*' state.highstate
.. _state-layers-overstate:
.. _state-layers-orchestrate:
OverState
=========
Orchestrate
===========
The overstate layer expresses the highest functional layer of Salt's automated
The orchestrate layer expresses the highest functional layer of Salt's automated
logic systems. The Overstate allows for stateful and functional orchestration
of routines from the master. The overstate defines in data execution stages
of routines from the master. The orchestrate defines in data execution stages
which minions should execute states, or functions, and in what order using
requisite logic.

View file

@ -1,7 +0,0 @@
================
OverState System
================
.. note::
This documentation has been moved :ref:`here <states-overstate>`.

View file

@ -101,9 +101,9 @@ first line in the stanza) or the ``- name`` parameter.
Omitting state module in requisites
-----------------------------------
.. versionadded:: Boron
.. versionadded:: 2016.3.0
In version Boron, the state module name was made optional. If the state module
In version 2016.3.0, the state module name was made optional. If the state module
is omitted, all states matching the ID will be required, regardless of which
module they are using.

View file

@ -0,0 +1,26 @@
.. _blackout:
=============================
Minion Blackout Configuration
=============================
.. versionadded:: 2016.3.0
Salt supports minion blackouts. When a minion is in blackout mode, all remote
execution commands are disabled. This allows production minions to be put
"on hold", eliminating the risk of an untimely configuration change.
Minion blackouts are configured via a special pillar key, ``minion_blackout``.
If this key is set to ``True``, then the minion will reject all incoming
commands, except for ``saltutil.refresh_pillar``. (The exception is important,
so minions can be brought out of blackout mode)
Salt also supports an explicit whitelist of additional functions that will be
allowed during blackout. This is configured with the special pillar key
``minion_blackout_whitelist``, which is formed as a list:
.. code_block:: yaml
minion_blackout_whitelist:
- test.ping
- pillar.get

View file

@ -184,17 +184,17 @@ and price. Required.
assign_private_ip
-----------------
.. versionadded:: Boron
.. versionadded:: 2016.3.0
Assigns a private IP address to a Linode when set to True. Default is False.
private_ip
----------
Deprecated in favor of `assign_private_ip`_ in Salt Boron.
Deprecated in favor of `assign_private_ip`_ in Salt 2016.3.0.
ssh_interface
-------------
.. versionadded:: Boron
.. versionadded:: 2016.3.0
Specify whether to use a public or private IP for the deploy script. Valid options
are:

View file

@ -192,7 +192,7 @@ Name) which is a result of combining the ``domain`` configuration value and the
Minion name specified either via the CLI or a map file rather than only using the
short host name, or Minion ID. Default is False.
.. versionadded:: Boron
.. versionadded:: 2016.3.0
For example, if the value of ``domain`` is ``example.com`` and a new VM was created
via the CLI with ``salt-cloud -p base_softlayer_ubuntu my-vm``, the resulting

View file

@ -246,7 +246,7 @@ Set up an initial profile at ``/etc/salt/cloud.profiles`` or
Enter the size of disk in GB
thin_provision
Specifies whether the disk should be thin provisioned or not. Default is ``thin_provision: False``.
.. versionadded:: Boron
.. versionadded:: 2016.3.0
controller
Specify the SCSI controller label to which this disk should be attached.
This should be specified only when creating both the specified SCSI
@ -527,7 +527,7 @@ Example of a minimal profile:
Creating a VM
=============
.. versionadded:: Boron
.. versionadded:: 2016.3.0
Creating a VM from scratch means that more configuration has to be specified in the
profile because there is no place to inherit configuration from.

View file

@ -11,6 +11,7 @@ secure and troubleshoot, and how to perform many other administrative tasks.
../../ref/configuration/master
../../ref/configuration/minion
../../ref/configuration/examples
../blackout/index
../eauth/access_control
../jobs/index
../jobs/job_cache

View file

@ -139,7 +139,7 @@ For changes to a function:
'''
Upper-case the given value
.. versionchanged:: Boron
.. versionchanged:: 2016.3.0
Added a flag to also strip whitespace from the string.
<...snip...>

View file

@ -777,6 +777,21 @@ state file using the following syntax:
service.running:
- name: {{ mysql.service }}
Organizing Pillar data
``````````````````````
It is considered a best practice to make formulas expect **all**
formula-related parameters to be placed under second-level ``lookup`` key,
within a main namespace designated for holding data for particular
service/software/etc, managed by the formula:
.. code-block:: yaml
mysql:
lookup:
version: 5.7.11
...
Collecting common values
````````````````````````

View file

@ -19,7 +19,7 @@ In an issue report, please include the following information:
* Any steps taken to attempt to remediate the problem.
* Any configuration options set in a configuration file that may be relevent.
* Any configuration options set in a configuration file that may be relevant.
* A reproduceable test case. This may be as simple as an SLS file that
illustrates a problem or it may be a link to a repository that contains a

View file

@ -84,58 +84,36 @@ To install using the SaltStack repository:
- ``yum install salt-cloud``
.. note::
EPEL support is not required when installing using the SaltStack repository
on Red Hat 6 and 7. EPEL must be enabled when installing on Red Hat 5.
As of 2015.8.0, EPEL repository is no longer required for installing on
RHEL systems. SaltStack repository provides all needed dependencies.
Post-installation tasks
=======================
.. warning::
If installing on Red Hat Enterprise Linux 7 with disabled (not subscribed on)
'RHEL Server Releases' or 'RHEL Server Optional Channel' repositories,
append CentOS 7 GPG key URL to SaltStack yum repository configuration to
install required base packages:
**Master**
.. code-block:: cfg
To have the Master start automatically at boot time:
.. code-block:: bash
chkconfig salt-master on
To start the Master:
.. code-block:: bash
service salt-master start
**Minion**
To have the Minion start automatically at boot time:
.. code-block:: bash
chkconfig salt-minion on
To start the Minion:
.. code-block:: bash
service salt-minion start
Now go to the :doc:`Configuring Salt</ref/configuration/index>` page.
[saltstack-repo]
name=SaltStack repo for Red Hat Enterprise Linux $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/base/RPM-GPG-KEY-CentOS-7
Installation from the Community Repository
==========================================
Beginning with version 0.9.4, Salt has been available in `EPEL`_. For
RHEL/CentOS 5, `Fedora COPR`_ is recommended due to the removal of some
dependencies from EPEL5.
On RHEL/CentOS 6, the proper Jinja package 'python-jinja2' was moved from EPEL
to the "RHEL Server Optional Channel". Verify this repository is enabled before
installing salt on RHEL/CentOS 6.
RHEL/CentOS 5, `Fedora COPR`_ is a single community repository that provides
Salt packages due to the removal from EPEL5.
.. note::
Packages in these repositories are community built, and it can
take a little while until the latest SaltStack release is available
in this repository.
Packages in these repositories are built by community, and it can
take a little while until the latest stable SaltStack release become
available.
.. _`EPEL`: http://fedoraproject.org/wiki/EPEL
.. _`Fedora COPR`: https://copr.fedorainfracloud.org/coprs/saltstack/salt-el5/
@ -144,10 +122,10 @@ RHEL/CentOS 6 and 7, Scientific Linux, etc.
-------------------------------------------
.. warning::
Salt 2015.8 requires ``python-crypto`` 2.6.1 or higher, and ``python-tornado`` version
4.2.1 or higher. These packages are not currently available in EPEL for
Red Hat 5 and 6. You must install these dependencies from another location
or use the SaltStack repository documented above.
Salt 2015.8 is currently not available in EPEL due to unsatisfied
dependencies: ``python-crypto`` 2.6.1 or higher, and ``python-tornado``
version 4.2.1 or higher. These packages are not currently available in EPEL
for Red Hat Enterprise Linux 6 and 7.
Enabling EPEL
*************
@ -165,7 +143,6 @@ Replace ``epel-release-X-Y.rpm`` with the appropriate filename.
.. _RHEL/CentOS 6: http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html
.. _RHEL/CentOS 7: http://download.fedoraproject.org/pub/epel/7/x86_64/repoview/epel-release.html
Installing Stable Release
*************************
@ -183,9 +160,9 @@ Installing from ``epel-testing``
********************************
When a new Salt release is packaged, it is first admitted into the
``epel-testing`` repository, before being moved to the stable repo.
``epel-testing`` repository, before being moved to the stable EPEL repository.
To install from ``epel-testing``, use the ``enablerepo`` argument for yum:
To install from ``epel-testing``, use the ``enablerepo`` argument for ``yum``:
.. code-block:: bash
@ -195,7 +172,7 @@ Installation Using pip
======================
Since Salt is on `PyPI`_, it can be installed using pip, though most users
prefer to install using RPMs (which can be installed from `EPEL`_).
prefer to install using RPM packages (which can be installed from `EPEL`_).
Installing from pip has a few additional requirements:
@ -215,7 +192,6 @@ Installation from pip:
pip install salt
.. warning::
If installing from pip (or from source using ``setup.py install``), be
advised that the ``yum-utils`` package is needed for Salt to manage
packages. Also, if the Python dependencies are not already installed, then
@ -226,15 +202,15 @@ Installation from pip:
ZeroMQ 4
========
We recommend using ZeroMQ 4 where available. SaltStack provides ZeroMQ 4.0.4
and pyzmq 14.3.1 in the :ref:`SaltStack Repository <installation-rhel-repo>`
as well as a COPR_ repository.
We recommend using ZeroMQ 4 where available. SaltStack provides ZeroMQ 4.0.5
and pyzmq 14.5.0 in the :ref:`SaltStack Repository <installation-rhel-repo>`
as well as a separate `zeromq4 COPR`_ repository.
.. _COPR: http://copr.fedorainfracloud.org/coprs/saltstack/zeromq4/
.. _`zeromq4 COPR`: http://copr.fedorainfracloud.org/coprs/saltstack/zeromq4/
If this repo is added *before* Salt is installed, then installing either
``salt-master`` or ``salt-minion`` will automatically pull in ZeroMQ 4.0.4, and
additional states to upgrade ZeroMQ and pyzmq are unnecessary.
If this repository is added *before* Salt is installed, then installing either
``salt-master`` or ``salt-minion`` will automatically pull in ZeroMQ 4.0.5, and
additional steps to upgrade ZeroMQ and pyzmq are unnecessary.
.. warning:: RHEL/CentOS 5 Users
Using COPR repos on RHEL/CentOS 5 requires that the ``python-hashlib``
@ -242,11 +218,10 @@ additional states to upgrade ZeroMQ and pyzmq are unnecessary.
because YUM will not be able to process the SHA256 checksums used by COPR.
.. note::
For RHEL/CentOS 5 installations, if using the new repository to install
Salt (as detailed :ref:`above <installation-rhel-5>`), then it is not
necessary to enable the zeromq4 COPR, as the new EL5 repository includes
ZeroMQ 4.
For RHEL/CentOS 5 installations, if using the SaltStack repo or Fedora COPR
to install Salt (as described :ref:`above <installation-rhel-repo>`),
then it is not necessary to enable the `zeromq4 COPR`_, because those
repositories already include ZeroMQ 4.
Package Management
==================
@ -263,34 +238,66 @@ dependency.
Post-installation tasks
=======================
**Master**
Master
------
To have the Master start automatically at boot time:
**RHEL/CentOS 5 and 6**
.. code-block:: bash
chkconfig salt-master on
**RHEL/CentOS 7**
.. code-block:: bash
systemctl enable salt-master.service
To start the Master:
**RHEL/CentOS 5 and 6**
.. code-block:: bash
service salt-master start
**Minion**
**RHEL/CentOS 7**
.. code-block:: bash
systemctl start salt-master.service
Minion
------
To have the Minion start automatically at boot time:
**RHEL/CentOS 5 and 6**
.. code-block:: bash
chkconfig salt-minion on
**RHEL/CentOS 7**
.. code-block:: bash
systemctl enable salt-minion.service
To start the Minion:
**RHEL/CentOS 5 and 6**
.. code-block:: bash
service salt-minion start
**RHEL/CentOS 7**
.. code-block:: bash
systemctl start salt-minion.service
Now go to the :doc:`Configuring Salt</ref/configuration/index>` page.

View file

@ -26,7 +26,7 @@ The Orchestrate Runner
The Orchestrate Runner was added with the intent to eventually deprecate the
OverState system, however the OverState will still be maintained until Salt
Boron.
2015.8.0.
The orchestrate runner generalizes the Salt state system to a Salt master
context. Whereas the ``state.sls``, ``state.highstate``, et al functions are

View file

@ -361,6 +361,13 @@ can be created like this:
salt '*' state.highstate pillar='["cheese", "milk", "bread"]'
.. note::
Be aware that when sending sensitive data via pillar on the command-line
that the publication containing that data will be received by all minions
and will not be restricted to the targeted minions. This may represent
a security concern in some cases.
Master Config In Pillar
=======================

View file

@ -43,7 +43,7 @@ New in 2015.8.2
The `proxymodule` variable has been moved a new globally-injected variable
called `__proxy__`. A related configuration option called
`add_proxymodule_to_opts` has been added and defaults to `True`. In the next
major release, codenamed Boron, this variable will default to False.
major release, 2016.3.0, this variable will default to False.
In the meantime, proxies that functioned under 2015.8.0 and .1 should continue
to work under 2015.8.2. You should rework your proxy code to use `__proxy__` as

View file

@ -466,7 +466,7 @@ Configurable Trunk/Branches/Tags Paths
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Prior to this release, the paths where trunk, branches, and tags were located
could only be in directores named "trunk", "branches", and "tags" directly
could only be in directories named "trunk", "branches", and "tags" directly
under the root of the repository. Three new config parameters
(:conf_master:`svnfs_trunk`, :conf_master:`svnfs_branches`, and
:conf_master:`svnfs_tags`) allow SVN repositories which are laid out

View file

@ -24,13 +24,13 @@ Changes:
- Various fixes to the Windows installation scripts
- Fix issue where the syndic would not correctly propogate loads to the master
- Fix issue where the syndic would not correctly propagate loads to the master
job cache.
- Improve error handling on invalid /etc/network/interfaces file in salt
networking modules
- Fix bug where a reponse status was not checked for in fileclient.get_url
- Fix bug where a response status was not checked for in fileclient.get_url
- Enable eauth when running salt in batch mode

View file

@ -33,13 +33,13 @@ Changes:
- Various fixes to the Windows installation scripts
- Fix issue where the syndic would not correctly propogate loads to the master
- Fix issue where the syndic would not correctly propagate loads to the master
job cache.
- Improve error handling on invalid /etc/network/interfaces file in salt
networking modules
- Fix bug where a reponse status was not checked for in fileclient.get_url
- Fix bug where a response status was not checked for in fileclient.get_url
- Enable eauth when running salt in batch mode

View file

@ -125,7 +125,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
* ebff1ff Merge pull request `#23956`_ from rallytime/`bp-23906`_
* 9d87fd3 add proper marker for format argument
* 197688e Added exception handler to trap the RuntimeError raised when Depends.enforce_dependency() class method fires unsuccessfully. There appears to be no synchronization within the Depends decorator class wrt the class global dependency_dict which results in incomplete population of any loader instantiation occuring at the time of one of these exceptions.
* 197688e Added exception handler to trap the RuntimeError raised when Depends.enforce_dependency() class method fires unsuccessfully. There appears to be no synchronization within the Depends decorator class wrt the class global dependency_dict which results in incomplete population of any loader instantiation occurring at the time of one of these exceptions.
- **PR** `#23955`_: (*rallytime*) Backport `#19305`_ to 2015.5
@ *2015-05-20T03:03:55Z*

View file

@ -84,7 +84,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
@ *2015-06-01T17:45:36Z*
* 02bfb25 Merge pull request `#24281`_ from steverweber/ipmi_docfix
* dd36f2c yaml formating
* dd36f2c yaml formatting
* f6deef3 include api_kg kwarg in ipmi state
@ -874,7 +874,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
**PR** `#24015`_: (*YanChii*) minor improvement of solarisips docs & fix typos
| refs: `#24039`_
* d909781 Merge pull request `#24039`_ from rallytime/`bp-24015`_
* 6bfaa94 minor improovement of solarisips docs & fix typos
* 6bfaa94 minor improvement of solarisips docs & fix typos
**PR** `#24038`_: (*rallytime*) Backport `#19599`_ to 2015.5
@ *2015-05-21T23:43:10Z*
@ -913,7 +913,7 @@ Extended Changelog Courtesy of Todd Stansell (https://github.com/tjstansell/salt
* 1dc67e5 lxc: versionadded
* fcad7cb lxc: states improvments
* fcad7cb lxc: states improvements
* 644bd72 lxc: more consistence for profiles

View file

@ -1112,7 +1112,7 @@ Changes:
- **PR** `#25326`_: (*rallytime*) Back-port `#20972`_ to 2015.5
@ *2015-07-10T18:49:44Z*
- **ISSUE** `#19288`_: (*oba11*) AssociatePublicIpAddress doesnt work with salt-cloud 2014.7.0
- **ISSUE** `#19288`_: (*oba11*) AssociatePublicIpAddress doesn't work with salt-cloud 2014.7.0
| refs: `#20972`_ `#25326`_
- **PR** `#20972`_: (*JohannesEbke*) Fix interface cleanup when using AssociatePublicIpAddress in `#19288`_
| refs: `#25326`_
@ -1304,7 +1304,7 @@ Changes:
- **ISSUE** `#24979`_: (*mavenAtHouzz*) [Discussion] Support for more than 1 netapi.rest_tornado server process
| refs: `#25149`_
- **PR** `#25120`_: (*d--j*) add missing continue for exeption case
- **PR** `#25120`_: (*d--j*) add missing continue for exception case
@ *2015-07-02T19:38:45Z*
- **PR** `#25117`_: (*basepi*) Fix fileclient.is_cached

View file

@ -1110,7 +1110,7 @@ Changes:
- **PR** `#25326`_: (*rallytime*) Back-port `#20972`_ to 2015.5
@ *2015-07-10T18:49:44Z*
- **ISSUE** `#19288`_: (*oba11*) AssociatePublicIpAddress doesnt work with salt-cloud 2014.7.0
- **ISSUE** `#19288`_: (*oba11*) AssociatePublicIpAddress doesn't work with salt-cloud 2014.7.0
| refs: `#20972`_ `#25326`_
- **PR** `#20972`_: (*JohannesEbke*) Fix interface cleanup when using AssociatePublicIpAddress in `#19288`_
| refs: `#25326`_
@ -1302,7 +1302,7 @@ Changes:
- **ISSUE** `#24979`_: (*mavenAtHouzz*) [Discussion] Support for more than 1 netapi.rest_tornado server process
| refs: `#25149`_
- **PR** `#25120`_: (*d--j*) add missing continue for exeption case
- **PR** `#25120`_: (*d--j*) add missing continue for exception case
@ *2015-07-02T19:38:45Z*
- **PR** `#25117`_: (*basepi*) Fix fileclient.is_cached

View file

@ -256,7 +256,7 @@ Changes:
- **PR** `#27050`_: (*twangboy*) Turned multiprocessing on
- **PR** `#27086`_: (*techhat*) Document develoment of SPM loader modules
- **PR** `#27086`_: (*techhat*) Document development of SPM loader modules
- **PR** `#26941`_: (*msteed*) Make elasticsearch work as master job cache

View file

@ -13,10 +13,7 @@ name: <name>`` arguments, are targeting with the state ID instead of the name,
or are not using ``_in`` requisites, then you should be safe to upgrade to
2015.8.4.
We are working on a 2015.8.5 release to resolve this issue. It will be available as
soon as possible.
This issue is resolved in the :ref:`2015.8.5 <2015.8.5>` release.
Security Fix
============

View file

@ -1,3 +1,5 @@
.. _2015.8.5:
===========================
Salt 2015.8.5 Release Notes
===========================
@ -39,4 +41,9 @@ following:
.. _`#30867`: https://github.com/saltstack/salt/pull/30867/files
--------------------------
**2015.8.4 Release Notes**
.. include:: 2015.8.4.rst
:start-line: 16

View file

@ -0,0 +1,91 @@
===========================
Salt 2015.8.7 Release Notes
===========================
Changes for v2015.8.4..v2015.8.7
--------------------------------
Extended changelog courtesy of Todd Stansell (https://github.com/tjstansell/salt-changelogs):
*Generated at: 2016-02-11T22:13:51Z*
Statistics:
- Total Merges: **2**
- Total Issue references: **0**
- Total PR references: **3**
Changes:
- **PR** `#31111`_: (*jtand*) Fixes failing npm test on arch.
@ *2016-02-10T21:51:47Z*
* 8d84c63 Merge pull request `#31111`_ from jtand/8_4_npm_fix
* b0a48e5 Fixes failing npm test on arch.
* 733c6ab Some 3rd-party modules (e.g. gnupg) define custom log levels that emit at INFO level and above. This patch sets the color data lookups to default to TextFormat('reset') rather than producing a stack trace every time a log message is generated from an affected module.
* 3f71fd0 Revert `#30217`_
- **PR** `#30217`_: (*pass-by-value*) Make sure cloud actions can be called via salt run
- **PR** `#31092`_: (*terminalmage*) Apply PR `#31031`_ to 2015.8.4.follow_up
@ *2016-02-10T20:54:37Z*
* 5a6a93e Merge pull request `#31092`_ from terminalmage/issue31014-2015.8.4.follow_up
* 2767a4e Don't handle epoch specially for dnf
* e5dfcc0 More efficient way to add the epoch before version number
* ed74627 include possible epoch in version for rpm
* 6c6b66a Comment multiprocessing line in minion config
* 1f7dfef Set multiprocessing to true in config.py
* 433c645 Fix remove placeholder files
* 7103756 Remove placeholder files
* 20b381f Set overwrite to off
* ca50f56 Fix boto_secgroup
* fd571d2 Fix boto test failures
* cfb6588 Fix regression when contents_pillar/contents_grains is a list.
* 881d866 utils.aws: use time lib to conver to epoch seconds
* 3141292 The call to cp.get_url needs the saltenv, if you're using environments other than base, it will fail.
* a869401 Fix regression in git_pillar when multiple remotes are configured
* 2243f25 Properly set the default value for pillar_merge_lists
* c7472ff Lint
* d868711 Fix failing boto_vpc module unit tests
* ed09516 Fix failing state module tests
* fd0e940 Pylint fix
* bc780a7 Don't use pack=pack. Just pass in pack=__salt__ always.
* 1ae022d Pass in 'pack' variable to utils.boto.assign_funcs function from ALL boto modules.
* 1efaff1 Remove bad symlinks in osx pkg dirs
* c7db435 Fix regression in scanning for state with 'name' param
.. _`#30217`: https://github.com/saltstack/salt/pull/30217
.. _`#31031`: https://github.com/saltstack/salt/issues/31031
.. _`#31092`: https://github.com/saltstack/salt/pull/31092
.. _`#31111`: https://github.com/saltstack/salt/pull/31111
--------------------------
**2015.8.5 Release Notes**
.. include:: 2015.8.5.rst
:start-line: 6`

View file

@ -1,8 +1,8 @@
:orphan:
===================================
Salt Release Notes - Codename Boron
===================================
============================================
Salt 2016.3.0 Release Notes - Codename Boron
============================================
Backwards-incompatible Changes
==============================

View file

@ -150,7 +150,7 @@ Changes to Functions in Git Execution Module
convenience and to match the usage of other functions with ``force``
arguments.
- The ``refspecs`` argument has been added to allow for one or more refspecs to
be provided which overide the one(s) specified by the
be provided which override the one(s) specified by the
**remote.remote_name.fetch** git configuration option.
:py:func:`git.ls_remote <salt.modules.git.ls_remote>`

View file

@ -27,8 +27,9 @@ Assigned codenames:
- Helium: ``2014.7.0``
- Lithium: ``2015.5.0``
- Beryllium: ``2015.8.0``
- Boron: ``TBD``
- Boron: ``2016.3.0``
- Carbon: ``TBD``
- Nitrogen: ``TBD``
Example
-------

View file

@ -50,6 +50,12 @@ To match a nodegroup on the CLI, use the ``-N`` command-line option:
salt -N group1 test.ping
.. note::
The ``N@`` classifier cannot be used in compound mathes within the CLI or
:term:`top file`, it is only recognized in the :conf_master:`nodegroups`
master config file parameter.
To match a nodegroup in your :term:`top file`, make sure to put ``- match:
nodegroup`` on the line directly following the nodegroup name.

View file

@ -5,7 +5,8 @@ Thorium Complex Reactor
.. note::
Thorium was added to Salt as an experimental feature in the 2016.3.0
release, as of 2016.3 this feature is considered experimental.
release, as of 2016.3.0 this feature is considered experimental, no
guarantees are made for support of any kind yet.
The original Salt Reactor is based on the idea of listening for a specific
@ -13,9 +14,9 @@ event and then reacting to it. This model comes with many logical limitations,
for instance it is very difficult (and hacky) to fire a reaction based on
aggregate data or based on multiple events.
The Thorium reactor is intended to aleviate this problem in a very elegant way.
The Thorium reactor is intended to alleviate this problem in a very elegant way.
Instead of using extensive jinja routines or complex python sls files the
aggregation of data and the determinization of what should run becomes isolated
aggregation of data and the determination of what should run becomes isolated
to the sls data logic, makes the definitions much cleaner.

View file

@ -145,10 +145,10 @@ will connect to.
.. note::
If you're running your ESXi Proxy Minion on version of Salt that is 2015.8.4
If you're running your ESXi Proxy Minion on version of Salt that is 2015.8.2
or newer, you also need to set ``add_proxymodule_to_opts: False`` in your
proxy config file. The need to specify this configuration will be removed with
Salt ``Boron``, the next major feature release. See the `New in 2015.8.2`_
Salt ``2016.3.0``, the next major feature release. See the `New in 2015.8.2`_
section of the Proxy Minion documentation for more information.
.. _New in 2015.8.2: https://docs.saltstack.com/en/latest/topics/proxyminion/index.html#new-in-2015-8-2

View file

@ -315,7 +315,7 @@ debugging purposes, SSL verification can be turned off.
CA Bundles
~~~~~~~~~~
The ``requests`` library has its own method of detecting which CA (certficate
The ``requests`` library has its own method of detecting which CA (certificate
authority) bundle file to use. Usually this is implemented by the packager for
the specific operating system distribution that you are using. However,
``urllib2`` requires a little more work under the hood. By default, Salt will

View file

@ -35,7 +35,7 @@ we must configure the minions to back-off appropriately when the Master is
under heavy load.
The fourth is caused by masters with little hardware resources in combination
with a possible bug in ZeroMQ. At least thats what it looks like till today
with a possible bug in ZeroMQ. At least that's what it looks like till today
(`Issue 118651 <https://github.com/saltstack/salt/issues/11865>`_,
`Issue 5948 <https://github.com/saltstack/salt/issues/5948>`_,
`Mail thread <https://groups.google.com/forum/#!searchin/salt-users/lots$20of$20minions/salt-users/WxothArv2Do/t12MigMQDFAJ>`_)
@ -214,6 +214,23 @@ influence the key-size can have.
Downsizing the Salt Master's key is not that important, because the minions
do not encrypt as many messages as the Master does.
In installations with large or with complex pillar files, it is possible
for the master to exhibit poor performance as a result of having to render
many pillar files at once. This exhibit itself in a number of ways, both
as high load on the master and on minions which block on waiting for their
pillar to be delivered to them.
To reduce pillar rendering times, it is possible to cache pillars on the
master. To do this, see the set of master configuration options which
are prefixed with `pillar_cache`.
.. note::
Caching pillars on the master may introduce security considerations.
Be certain to read caveats outlined in the master configuration file
to understand how pillar caching may affect a master's ability to
protect sensitive data!
The Master is disk IO bound
---------------------------

View file

@ -219,7 +219,7 @@ container-by-container basis, for instance using the ``nic_opts`` argument to
.. warning::
The ``ipv4``, ``ipv6``, ``gateway``, and ``link`` (bridge) settings in
network profiles / nic_opts will only work if the container doesnt redefine
network profiles / nic_opts will only work if the container doesn't redefine
the network configuration (for example in
``/etc/sysconfig/network-scripts/ifcfg-<interface_name>`` on RHEL/CentOS,
or ``/etc/network/interfaces`` on Debian/Ubuntu/etc.). Use these with

View file

@ -180,7 +180,13 @@ copy of the repository cache. Command examples are as follows:
Creating a Package Definition SLS File
======================================
The package definition file should look similar to this example for Firefox:
The package definition file is a yaml file that contains all the information
needed to install a piece of software using salt. It defines information about
the package to include version, full name, flags required for the installer and
uninstaller, whether or not to use the windows task scheduler to install the
package, where to find the installation package, etc.
Take a look at this example for Firefox:
.. code-block:: yaml
@ -210,12 +216,48 @@ The package definition file should look similar to this example for Firefox:
uninstaller: '%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe'
uninstall_flags: '/S'
More examples can be found at https://github.com/saltstack/salt-winrepo-ng
Each software definition file begins with a package name for the software. As in
the example above ``firefox``. The next line is indented two spaces and contains
the version to be defined. As in the example above, a software definition file
can define multiple versions for the same piece of software. The lines following
the version are indented two more spaces and contain all the information needed
to install that package.
The version number and ``full_name`` need to match the output from ``pkg.list_pkgs``
so that the status can be verified when running highstate.
Note: It is still possible to successfully install packages using ``pkg.install``
even if they don't match which can make this hard to troubleshoot.
.. warning:: The package name and the ``full_name`` must be unique to all
other packages in the software repository.
The version line is the version for the package to be installed. It is used when
you need to install a specific version of a piece of software.
.. warning:: The version must be enclosed in quotes, otherwise the yaml parser
will remove trailing zeros.
.. note:: There are unique situations where previous versions are unavailable.
Take Google Chrome for example. There is only one url provided for a standalone
installation of Google Chrome. (https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi)
When a new version is released, the url just points to the new version. To handle
situations such as these, set the version to `latest`. Salt will install the
version of chrome at the URL and report that version. Here's an example:
.. code-block:: bash
chrome:
latest:
full_name: 'Google Chrome'
installer: 'https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi'
install_flags: '/qn /norestart'
uninstaller: 'https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi'
uninstall_flags: '/qn /norestart'
msiexec: True
locale: en_US
reboot: False
Available parameters are as follows:
:param str full_name: The Full Name for the software as shown in "Programs and
Features" in the control panel. You can also get this information by installing
the package manually and then running ``pkg.list_pkgs``. Here's an example of
the output from ``pkg.list_pkgs``:
.. code-block:: bash
@ -241,9 +283,13 @@ even if they don't match which can make this hard to troubleshoot.
Salt Minion 0.16.0:
0.16.0
If any of these preinstalled packages already exist in winrepo the full_name
will be automatically renamed to their package name during the next update
(running highstate or installing another package).
Notice the Full Name for Firefox: Mozilla Firefox 17.0.0 (x86 en-US). That's
exactly what's in the ``full_name`` parameter in the software definition file.
If any of the software insalled on the machine matches one of the software
definition files in the repository the full_name will be automatically renamed
to the package name. The example below shows the ``pkg.list_pkgs`` for a
machine that already has Mozilla Firefox 17.0.1 installed.
.. code-block:: bash
@ -268,15 +314,46 @@ will be automatically renamed to their package name during the next update
nsclient:
0.3.9.328
Add ``msiexec: True`` if using an MSI installer requiring the use of ``msiexec
/i`` to install and ``msiexec /x`` to uninstall.
.. important:: The version number and ``full_name`` need to match the output
from ``pkg.list_pkgs`` so that the status can be verified when running
highstate.
The ``install_flags`` and ``uninstall_flags`` are flags passed to the software
installer to cause it to perform a silent install. These can often be found by
adding ``/?`` or ``/h`` when running the installer from the command line. A
great resource for finding these silent install flags can be found on the WPKG
.. note:: It is still possible to successfully install packages using
``pkg.install`` even if they don't match. This can make troubleshooting
difficult so be careful.
:param str installer: The path to the ``.exe`` or ``.msi`` to use to install the
package. This can be a path or a URL. If it is a URL or a salt path (salt://),
the package will be cached locally and then executed. If it is a path to a file
on disk or a file share, it will be executed directly.
:param str install_flags: Any flags that need to be passed to the installer to
make it perform a silent install. These can often be found by adding ``/?`` or
``/h`` when running the installer from the command line. A great resource for
finding these silent install flags can be found on the WPKG project's wiki_:
Salt will not return if the installer is waiting for user input so these are
important.
:param str uninstaller: The path to the program used to uninstall this software.
This can be the path to the same `exe` or `msi` used to install the software. It
can also be a GUID. You can find this value in the registry under the following
keys:
- Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall
- Software\\Wow6432None\\Microsoft\\Windows\\CurrentVersion\\Uninstall
:param str uninstall_flags: Any flags that need to be passed to the uninstaller
to make it perform a silent uninstall. These can often be found by adding
``/?`` or ``/h`` when running the uninstaller from the command line. A great
resource for finding these silent install flags can be found on the WPKG
project's wiki_:
Salt will not return if the uninstaller is waiting for user input so these are
important.
Here are some examples of installer and uninstaller settings:
.. code-block:: yaml
7zip:
@ -303,9 +380,19 @@ Alternatively the ``uninstaller`` can also simply repeat the URL of the msi file
uninstaller: salt://win/repo/7zip/7z920-x64.msi
uninstall_flags: '/qn /norestart'
Add ``cache_dir: True`` when the installer requires multiple source files. The
directory containing the installer file will be recursively cached on the minion.
Only applies to salt: installer URLs.
:param bool msiexec: This tells salt to use ``msiexec /i`` to install the
package and ``msiexec /x`` to uninstall. This is for `.msi` installations.
:param bool allusers: This parameter is specific to `.msi` installations. It
tells `msiexec` to install the software for all users. The default is True.
:param bool cache_dir: If true, the entire directory where the installer resides
will be recursively cached. This is useful for installers that depend on other
files in the same directory for installation.
.. note:: Only applies to salt: installer URLs.
Here's an example for a software package that has dependent files:
.. code-block:: yaml
@ -317,6 +404,16 @@ Only applies to salt: installer URLs.
install_flags: '/ACTION=install /IACCEPTSQLSERVERLICENSETERMS /Q'
cache_dir: True
:param bool use_scheduler: If true, windows will use the task scheduler to run
the installation. This is useful for running the salt installation itself as
the installation process kills any currently running instances of salt.
:param bool reboot: Not implemented
:param str local: Not implemented
Examples can be found at https://github.com/saltstack/salt-winrepo-ng
.. _standalone-winrepo:

View file

@ -178,13 +178,13 @@ sudo $MAKE install
echo -n -e "\033]0;Build_Evn: OpenSSL\007"
PKGURL="http://openssl.org/source/openssl-1.0.2e.tar.gz"
PKGDIR="openssl-1.0.2e"
PKGURL="http://openssl.org/source/openssl-1.0.2f.tar.gz"
PKGDIR="openssl-1.0.2f"
download $PKGURL
echo "################################################################################"
echo "Building OpenSSL 1.0.2e"
echo "Building OpenSSL 1.0.2f"
echo "################################################################################"
cd $PKGDIR
./Configure darwin64-x86_64-cc --prefix=/opt/salt --openssldir=/opt/salt/openssl
@ -193,49 +193,6 @@ $MAKE test
sudo $MAKE install
############################################################################
# Download and install GDBM
############################################################################
echo -n -e "\033]0;Build_Evn: GDBM\007"
PKGURL="ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.11.tar.gz"
PKGDIR="gdbm-1.11"
download $PKGURL
echo "################################################################################"
echo "Building gdbm 1.11"
echo "################################################################################"
cd $PKGDIR
./configure --prefix=/opt/salt --enable-libgdbm-compat
$MAKE
$MAKE check
sudo $MAKE install
############################################################################
# Download and install Gnu Readline
############################################################################
echo -n -e "\033]0;Build_Evn: Gnu Readline\007"
PKGURL="ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz"
PKGDIR="readline-6.3"
download $PKGURL
curl -O# ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz
echo "################################################################################"
echo "Building GNU Readline 6.3"
echo "################################################################################"
cd $PKGDIR
./configure --prefix=/opt/salt
$MAKE
sudo $MAKE install
############################################################################
# Download and install Python
############################################################################
@ -255,47 +212,13 @@ cd $PKGDIR
./configure --prefix=/opt/salt --enable-shared --enable-toolbox-glue --with-ensurepip=install
$MAKE
# $MAKE test
sudo $MAKE install
sudo -H $MAKE install
############################################################################
# Download and install CMake
# upgrade pip
############################################################################
echo -n -e "\033]0;Build_Evn: CMake\007"
PKGURL="https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz"
PKGDIR="cmake-3.4.1"
download $PKGURL
echo "################################################################################"
echo "Building CMake 3.4.1"
echo "################################################################################"
cd $PKGDIR
./bootstrap
$MAKE
sudo $MAKE install
############################################################################
# Download and install libgit2
############################################################################
echo -n -e "\033]0;Build_Evn: libgit2\007"
PKGURL="https://codeload.github.com/libgit2/libgit2/tar.gz/v0.23.4"
PKGDIR="libgit2-0.23.4"
download $PKGURL
echo "################################################################################"
echo "Building libgit2 0.23.4"
echo "################################################################################"
cd $PKGDIR
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/salt
sudo cmake --build . --target install
sudo -H /opt/salt/bin/pip install --upgrade pip
############################################################################

View file

@ -72,7 +72,7 @@ fi
echo -n -e "\033]0;Build_Pkg: Clean Staging Area\007"
# Clean folder in the staging area
rm -rf $PKGDIR
rm -rdf $PKGDIR
mkdir -p $PKGDIR
PKGRESOURCES=$SRCDIR/pkg/osx
@ -126,6 +126,19 @@ cp $PKGRESOURCES/scripts/com.saltstack.salt.master.plist $PKGDIR/Library/LaunchD
cp $PKGRESOURCES/scripts/com.saltstack.salt.syndic.plist $PKGDIR/Library/LaunchDaemons
cp $PKGRESOURCES/scripts/com.saltstack.salt.api.plist $PKGDIR/Library/LaunchDaemons
############################################################################
# Remove pkg-config files from the distro
############################################################################
echo -n -e "\033]0;Build_Pkg: Remove pkg-config files\007"
sudo rm -rdf $PKGDIR/opt/salt/bin/pkg-config
sudo rm -rdf $PKGDIR/opt/salt/lib/pkgconfig
sudo rm -rdf $PKGDIR/opt/salt/lib/engines
sudo rm -rdf $PKGDIR/opt/salt/share/aclocal
sudo rm -rdf $PKGDIR/opt/salt/share/doc
sudo rm -rdf $PKGDIR/opt/salt/share/man/man1/pkg-config.1
############################################################################
# Copy Additional Resources from Salt Repo to the Package Directory
############################################################################
@ -138,8 +151,8 @@ cp $PKGRESOURCES/*.rtf $PKGDIR/resources
# I can't get this to work for some reason
mkdir -p $PKGDIR/scripts
cp $PKGRESOURCES/scripts/postflight.sh $PKGDIR/scripts
cp $PKGRESOURCES/scripts/preflight.sh $PKGDIR/scripts
cp $PKGRESOURCES/scripts/postinstall $PKGDIR/scripts
cp $PKGRESOURCES/scripts/preinstall $PKGDIR/scripts
############################################################################
# Copy Config Files from Salt Repo to the Package Directory
@ -152,7 +165,7 @@ cp $SRCDIR/conf/minion $PKGDIR/etc/salt/minion.dist
cp $SRCDIR/conf/master $PKGDIR/etc/salt/master.dist
############################################################################
# I don't know what this does, it doesn't look like the .xml file goes anywhere
# Add Version to distribution.xml
############################################################################
echo -n -e "\033]0;Build_Pkg: Add Version to .xml\007"
@ -170,6 +183,7 @@ sed -i '' $SEDSTR distribution.xml
echo -n -e "\033]0;Build_Pkg: Build Package\007"
pkgbuild --root $PKGDIR \
--scripts $PKGDIR/scripts \
--identifier=com.saltstack.salt \
--version=$VERSION \
--ownership=recommended salt-src-$VERSION.pkg
@ -177,6 +191,5 @@ pkgbuild --root $PKGDIR \
productbuild --resources=$PKGDIR/resources \
--distribution=distribution.xml \
--package-path=salt-src-$VERSION.pkg \
--scripts $PKGDIR/scripts \
--version=$VERSION salt-$VERSION.pkg

View file

@ -1,14 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<installer-gui-script minSpecVersion="1">
<installer-gui-script minSpecVersion="2">
<title>Salt @VERSION@</title>
<organization>com.saltstack.salt</organization>
<domains enable_localSystem="true"/>
<options rootVolumeOnly="true" />
<!-- Define minimum system requirements -->
<volume-check>
<allowed-os-versions>
<os-version min="10.11" />
</allowed-os-versions>
</volume-check>
<options rootVolumeOnly="true"
hostArchitectures="x86_64" />
<domains enable_localSystem="true" />
<!-- Define background image -->
<background file="saltstack.png"
mime-type="image/png"
scaling="proportional" />
<!-- Define documents displayed at various steps -->
<background file="saltstack.png" mime-type="image/png" scaling="proportional"/>
<welcome file="welcome.rtf" mime-type="text/rtf" />
<license file="license.rtf" mime-type="text/rtf" />
<conclusion file="conclusion.rtf" mime-type="text/rtf" />
<welcome file="welcome.rtf"
mime-type="text/rtf" />
<license file="license.rtf"
mime-type="text/rtf" />
<conclusion file="conclusion.rtf"
mime-type="text/rtf" />
<!-- List all component packages -->
<pkg-ref id="com.saltstack.salt"
version="@VERSION@"
@ -16,15 +29,14 @@
<!-- List them again here. They can now be organized
as a hierarchy if you want. -->
<choices-outline>
<line choice="com.saltstack.salt"/>
<line choice="com.saltstack.salt" />
</choices-outline>
<!-- Define each choice above -->
<choice
id="com.saltstack.salt"
visible="false"
title="Salt @VERSION@"
description="Salt @VERSION@"
start_selected="true">
<pkg-ref id="com.saltstack.salt"/>
<choice id="com.saltstack.salt"
visible="false"
title="Salt @VERSION@"
description="Salt @VERSION@"
start_selected="true">
<pkg-ref id="com.saltstack.salt" />
</choice>
</installer-gui-script>

View file

@ -1,15 +1,15 @@
{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf130
{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf340
{\fonttbl\f0\froman\fcharset0 Times-Roman;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
{\colortbl;\red255\green255\blue255;}
\vieww10800\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\sl560\sa321\partightenfactor0
\f0\b\fs48 \cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Salt - Remote execution system\
\f0\b\fs48 \cf0 \expnd0\expndtw0\kerning0
Salt - Remote execution system\
\pard\pardeftab720\sl280\sa240\partightenfactor0
\b0\fs24 \cf2 Copyright 2014-2015 SaltStack Team\
\b0\fs24 \cf0 Copyright 2014-2016 SaltStack Team\
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\
http://www.apache.org/licenses/LICENSE-2.0\
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\
}
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.}

View file

@ -1,31 +1,31 @@
apache-libcloud==0.19.0
backports.ssl_match_hostname==3.4.0.2
apache-libcloud==0.20.1
backports.ssl_match_hostname==3.5.0.1
backports_abc==0.4
certifi
cffi==1.3.1
CherryPy==3.2.3
click==4.1
enum34==1.1.1
cffi==1.5.0
CherryPy==4.0.0
click==6.2
enum34==1.1.2
gitdb==0.6.4
GitPython==1.0.1
idna==2.0
ioflo==1.4.9
ipaddress==1.0.15
ioflo==1.5.0
ipaddress==1.0.16
Jinja2==2.8
libnacl==1.4.3
libnacl==1.4.4
linode-python==1.1.1
Mako==1.0.3
MarkupSafe==0.23
msgpack-python==0.4.6
msgpack-python==0.4.7
pyasn1==0.1.9
pycparser==2.14
pycrypto==2.6.1
python_dateutil==2.4.2
python-dateutil==2.4.2
python-gnupg==0.3.8
PyYAML==3.11
pyzmq==15.1.0
pyzmq==15.2.0
raet==0.6.5
requests==2.9.0
requests==2.9.1
singledispatch==3.4.0.3
six==1.10.0
smmap==0.9.0

View file

@ -1,4 +1,2 @@
cryptography==1.1.2
cryptography==1.2.2
pyOpenSSL==0.15.1
pygit2==0.23.2

View file

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>salt-api</string>
<string>com.saltstack.salt.api</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>

View file

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>salt-master</string>
<string>com.saltstack.salt.master</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>

View file

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>salt-minion</string>
<string>com.saltstack.salt.minion</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>

View file

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>salt-syndic</string>
<string>com.saltstack.salt.syndic</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>

View file

@ -1,30 +0,0 @@
#!/bin/bash
###############################################################################
#
# Title: Post Script for Salt Installation
# Authors: Shane Lee
# Date: December 2015
#
# Description: This script copies the minion config file and starts the salt
# service
#
# Requirements:
# - None
#
# Usage:
# This script is run as a part of the OSX Salt Installation
#
###############################################################################
###############################################################################
# Check for existing minion config, copy if it doesn't exist
###############################################################################
if [ ! -f /etc/salt/minion ]; then
cp /etc/salt/minion.dist /etc/salt/minion
fi
###############################################################################
# Register Salt as a service
###############################################################################
set -e
launchctl load "/Library/LaunchDaemons/com.saltstack.salt.minion.plist"

67
pkg/osx/scripts/postinstall Executable file
View file

@ -0,0 +1,67 @@
#!/bin/bash
###############################################################################
#
# Title: Post Script for Salt Installation
# Authors: Shane Lee
# Date: December 2015
#
# Description: This script copies the minion config file and starts the salt
# service
#
# Requirements:
# - None
#
# Usage:
# This script is run as a part of the OSX Salt Installation
#
###############################################################################
echo "Post install started on:" > /tmp/postinstall.txt
date >> /tmp/postinstall.txt
trap 'quit_on_error $LINENO $BASH_COMMAND' ERR
quit_on_error() {
echo "$(basename $0) caught error on line : $1 command was: $2" >> /tmp/postinstall.txt
exit -1
}
###############################################################################
# Check for existing minion config, copy if it doesn't exist
###############################################################################
if [ ! -f /etc/salt/minion ]; then
echo "Config copy: Started..." >> /tmp/postinstall.txt
cp /etc/salt/minion.dist /etc/salt/minion
echo "Config copy: Successful" >> /tmp/postinstall.txt
fi
###############################################################################
# Register Salt as a service
###############################################################################
echo "Service start: Started..." >> /tmp/postinstall.txt
# launchctl load "/Library/LaunchDaemons/com.saltstack.salt.minion.plist"
echo "Service start: Enabling service..." >> /tmp/postinstall.txt
launchctl enable system/com.saltstack.salt.minion
echo "Service start: Bootstrapping service..." >> /tmp/postinstall.txt
launchctl bootstrap system /Library/LaunchDaemons/com.saltstack.salt.minion.plist
if /bin/launchctl list "com.saltstack.salt.minion" &> /dev/null; then
echo "Service is running" >> /tmp/postinstall.txt
else
echo "Service start: Kickstarting service..." >> /tmp/postinstall.txt
launchctl kickstart -kp system/com.saltstack.salt.minion
fi
echo "Service start: Successful" >> /tmp/postinstall.txt
echo "Service disable: Disabling Master, Syndic, and API" >> /tmp/postinstall.txt
launchctl disable system/com.saltstack.salt.master
launchctl disable system/com.saltstack.salt.syndic
launchctl disable system/com.saltstack.salt.api
# echo "Path: Adding salt to the path..." >> /tmp/postinstall.txt
# echo "/opt/salt/bin" > /etc/paths.d/salt
echo "Post install completed successfully" >> /tmp/postinstall.txt
exit 0

View file

@ -15,11 +15,26 @@
# This script is run as a part of the OSX Salt Installation
#
###############################################################################
echo "Preinstall started on:" > /tmp/preinstall.txt
date >> /tmp/preinstall.txt
trap 'quit_on_error $LINENO $BASH_COMMAND' ERR
quit_on_error() {
echo "$(basename $0) caught error on line : $1 command was: $2" >> /tmp/preinstall.txt
exit -1
}
###############################################################################
# Stop the service
###############################################################################
set -e
if /bin/launchctl list "com.saltstack.salt.minion" &> /dev/null; then
/bin/launchctl unload "/Library/LaunchDaemons/com.saltstack.salt.minion.plist"
echo "Stop service: Started..." >> /tmp/preinstall.txt
# /bin/launchctl unload "/Library/LaunchDaemons/com.saltstack.salt.minion.plist"
launchctl disable system/com.saltstack.salt.minion
launchctl bootout system /Library/LaunchDaemons/com.saltstack.salt.minion.plist
echo "Stop service: Successful" >> /tmp/preinstall.txt
fi
echo "Preinstall Completed Successfully" >> /tmp/preinstall.txt
exit 0

View file

@ -1 +0,0 @@
072bbfc3ffe3a838945ce6e7c4bbce267362673c3b870886accdc5a5ee01dbd071604fca6aa519d077676423d37bfe987b71f22f14a194f8d6ec8fb9de0a6049 ./cmake-3.4.1.tar.gz

View file

@ -1 +0,0 @@
272fb65ab9ca0a21e9f0dcfb2c638457e87cbb938c65ee850123474d11f2858496f84d3fa9edca27cd91c7220160cfdb59f90bd46ddc45395514addc9fd4151c ./gdbm-1.11.tar.gz

View file

@ -1 +0,0 @@
b73f114a117ccab284cf5891dac050e3016d28e0b1fc71639442cdb42accef676115af90a12deff4bcc1f599cc0cbdeb38142cbf4570bd7d03634786ad32c95f ./openssl-1.0.2e.tar.gz

View file

@ -0,0 +1 @@
50abf6dc94cafd06e7fd20770808bdc675c88daa369e4f752bd584ab17f72a57357c1ca1eca3c83e6745b5a3c9c73c99dce70adaa904d73f6df4c75bc7138351 ./openssl-1.0.2f.tar.gz

View file

@ -1 +0,0 @@
f70efaf46d570b85c7637172b0ee2eb9a4aa73ba38a62bb45075e665929d9701b96fba0aea6c767fd9a2a0d39dfe8e70ab06da08f8524aee76a7c502f370a401 ./readline-6.3.tar.gz

11
pkg/osx/shasums/readme.md Normal file
View file

@ -0,0 +1,11 @@
ShaSums
=======
This directory contains shasums for files that are downloaded by the `build_env.sh` script.
The sha's have been created using the following command:
```
shasum -a 512 ./<filename> > ./<filename>.sha512
```

View file

@ -1 +0,0 @@
f2f6244dfee4dab2dc5ef9607808404467a1f6baa684aa4e24b7116e7e7f63f396eef3282c1bcffbef47f19824731c2887deadbe3b2dad8a075b0639e5965d9e ./v0.23.4

View file

@ -6,6 +6,7 @@ After=network.target
Type=simple
LimitNOFILE=8192
ExecStart=/usr/bin/salt-api
TimeoutStopSec=3
[Install]
WantedBy=multi-user.target

View file

@ -360,11 +360,11 @@ Mon Mar 30 21:41:22 UTC 2015 - aboe76@gmail.com
+ Major performance improvements to Saltnado
+ Allow KVM module to operate under KVM itself or VMware Fusion
+ Various fixes to the Windows installation scripts
+ Fix issue where the syndic would not correctly propogate loads to the master
+ Fix issue where the syndic would not correctly propagate loads to the master
job cache.
+ Improve error handling on invalid /etc/network/interfaces file in salt
networking modules
+ Fix bug where a reponse status was not checked for in fileclient.get_url
+ Fix bug where a response status was not checked for in fileclient.get_url
+ Enable eauth when running salt in batch mode
+ Increase timeout in Boto Route53 module
+ Fix bugs with Salt's 'tar' module option parsing

View file

@ -44,6 +44,8 @@ python "%CurrDir%\portable.py" -f "%BinDir%\Scripts\pip2.exe"
del /S /Q "%BinDir%\*.pyc"
:: Remove all Compiled HTML Help (.chm)
del /S /Q "%BinDir%\*.chm"
:: Remove all empty text files (they are placeholders for git)
del /S /Q "%BinDir%\..\empty.*"
:: Delete Unused Docs and Modules
If Exist "%BinDir%\Doc" rd /S /Q "%BinDir%\Doc"

View file

@ -281,7 +281,7 @@ pki_dir: /conf/pki/minion
###########################################
# Disable multiprocessing support, by default when a minion receives a
# publication a new process is spawned and the command is executed therein.
multiprocessing: True
# multiprocessing: True
###### Logging settings #####
###########################################
@ -314,7 +314,7 @@ multiprocessing: True
# Default: 'warning'
#log_level_logfile:
#
# The date and time format used in log messages. Allowed date/time formating
# The date and time format used in log messages. Allowed date/time formatting
# can be seen on http://docs.python.org/library/time.html#time.strftime
#log_datefmt: '%H:%M:%S'
#log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

View file

@ -222,7 +222,7 @@ ShowUnInstDetails show
Section "MainSection" SEC01
SetOutPath "$INSTDIR\"
SetOverwrite try
SetOverwrite off
CreateDirectory $INSTDIR\conf\pki\minion
File /r "..\buildenv\"
Exec 'icacls c:\salt /inheritance:r /grant:r "BUILTIN\Administrators":(OI)(CI)F /grant:r "NT AUTHORITY\SYSTEM":(OI)(CI)F'

View file

@ -2,7 +2,7 @@
'''
Beacon to emit adb device state changes for Android devices
.. versionadded:: Boron
.. versionadded:: 2016.3.0
'''
# Import Python libs

View file

@ -2,7 +2,7 @@
'''
Beacon to emit when a display is available to a linux machine
.. versionadded:: Boron
.. versionadded:: 2016.3.0
'''
# Import Python libs

View file

@ -2,7 +2,7 @@
'''
Beacon to monitor memory usage.
.. versionadded:: Boron
.. versionadded:: 2016.3.0
:depends: python-psutil
'''

View file

@ -2,7 +2,7 @@
'''
Watch for pkgs that have upgrades, then fire an event.
.. versionadded:: Boron
.. versionadded:: 2016.3.0
'''
# Import python libs

View file

@ -329,7 +329,7 @@ class SyncClientMixin(object):
# kwargs using the old mechanism
if kwargs:
salt.utils.warn_until(
'Boron',
'Carbon',
'kwargs must be passed inside the low under "kwargs"'
)
else:

View file

@ -51,9 +51,9 @@ def sls(mods, saltenv='base', test=None, exclude=None, env=None, **kwargs):
__opts__['grains'] = __grains__
if env is not None:
salt.utils.warn_until(
'Boron',
'Carbon',
'Passing a salt environment should be done using \'saltenv\' '
'not \'env\'. This functionality will be removed in Salt Boron.'
'not \'env\'. This functionality will be removed in Salt Carbon.'
)
# Backwards compatibility
saltenv = env
@ -484,9 +484,9 @@ def show_sls(mods, saltenv='base', test=None, env=None, **kwargs):
__opts__['grains'] = __grains__
if env is not None:
salt.utils.warn_until(
'Boron',
'Carbon',
'Passing a salt environment should be done using \'saltenv\' '
'not \'env\'. This functionality will be removed in Salt Boron.'
'not \'env\'. This functionality will be removed in Salt Carbon.'
)
# Backwards compatibility
saltenv = env

View file

@ -9,7 +9,6 @@ from __future__ import absolute_import, print_function, generators
import os
import copy
import glob
import inspect
import time
import signal
import logging
@ -466,16 +465,28 @@ class CloudClient(object):
)
'''
mapper = salt.cloud.Map(self._opts_defaults(action=fun, names=names))
if instance:
if names:
raise SaltCloudConfigError(
'Please specify either a list of \'names\' or a single '
'\'instance\', but not both.'
)
names = [instance]
if names and not provider:
self.opts['action'] = fun
return mapper.do_action(names, kwargs)
if provider:
if provider and not names:
return mapper.do_function(provider, fun, kwargs)
else:
# This should not be called without either an instance or a
# provider.
# provider. If both an instance/list of names and a provider
# are given, then we also need to exit. We can only have one
# or the other.
raise SaltCloudConfigError(
'Either an instance or a provider must be specified.'
'Either an instance (or list of names) or a provider must be '
'specified, but not both.'
)
@ -1488,15 +1499,8 @@ class Cloud(object):
ret[alias][driver] = {}
if kwargs:
argnames = inspect.getargspec(self.clouds[fun]).args
for _ in inspect.getargspec(self.clouds[fun]).defaults:
argnames.pop(0)
kws = {}
for kwarg in argnames:
kws[kwarg] = kwargs.get(kwarg, None)
kws['call'] = 'action'
ret[alias][driver][vm_name] = self.clouds[fun](
vm_name, **kws
vm_name, kwargs, call='action'
)
else:
ret[alias][driver][vm_name] = self.clouds[fun](

View file

@ -583,7 +583,8 @@ def create(vm_):
# Check for required profile parameters before sending any API calls.
if vm_['profile'] and config.is_profile_configured(__opts__,
__active_provider_name__ or 'aliyun',
vm_['profile']) is False:
vm_['profile'],
vm_=vm_) is False:
return False
except AttributeError:
pass

View file

@ -1,242 +0,0 @@
# -*- coding: utf-8 -*-
'''
The AWS Cloud Module
====================
The AWS cloud module is used to interact with the Amazon Web Services system.
This module has been replaced by the EC2 cloud module, and is no longer
supported. The documentation shown here is for reference only; it is highly
recommended to change all usages of this driver over to the EC2 driver.
If this driver is still needed, set up the cloud configuration at
``/etc/salt/cloud.providers`` or ``/etc/salt/cloud.providers.d/aws.conf``:
.. code-block:: yaml
my-aws-botocore-config:
# The AWS API authentication id
id: GKTADJGHEIQSXMKKRBJ08H
# The AWS API authentication key
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
# The ssh keyname to use
keyname: default
# The amazon security group
securitygroup: ssh_open
# The location of the private key which corresponds to the keyname
private_key: /root/default.pem
driver: aws
'''
# pylint: disable=E0102
# Import python libs
from __future__ import absolute_import
import logging
# Import salt.cloud libs
import salt.utils.cloud
import salt.config as config
from salt.utils import namespaced_function
import salt.ext.six as six
# Import libcloudfuncs and libcloud_aws, required to latter patch __opts__
try:
from salt.cloud.libcloudfuncs import * # pylint: disable=W0614,W0401
from salt.cloud import libcloudfuncs
from salt.cloud.clouds import libcloud_aws
# Import libcloud_aws, storing pre and post locals so we can namespace any
# callable to this module.
PRE_IMPORT_LOCALS_KEYS = locals().copy()
from salt.cloud.clouds.libcloud_aws import * # pylint: disable=W0614,W0401
POST_IMPORT_LOCALS_KEYS = locals().copy()
HAS_LIBCLOUD = True
except ImportError:
HAS_LIBCLOUD = False
# Get logging started
log = logging.getLogger(__name__)
# Define the module's virtual name
__virtualname__ = 'aws'
# Only load in this module if the AWS configurations are in place
def __virtual__():
'''
Set up the libcloud funcstions and check for AWS configs
'''
try:
# Import botocore
import botocore.session
except ImportError:
# Botocore is not available, the Libcloud AWS module will be loaded
# instead.
return False
# "Patch" the imported libcloud_aws to have the current __opts__
libcloud_aws.__opts__ = __opts__
libcloudfuncs.__opts__ = __opts__
if get_configured_provider() is False:
return False
if get_dependencies() is False:
return False
for provider, details in six.iteritems(__opts__['providers']):
if 'aws' not in details:
continue
parameters = details['aws']
if salt.utils.cloud.check_key_path_and_mode(
provider, parameters['private_key']
) is False:
return False
# Let's bring the functions imported from libcloud_aws to the current
# namespace.
keysdiff = set(POST_IMPORT_LOCALS_KEYS).difference(
PRE_IMPORT_LOCALS_KEYS
)
for key in keysdiff:
# only import callables that actually have __code__ (this includes
# functions but excludes Exception classes)
if (callable(POST_IMPORT_LOCALS_KEYS[key]) and
hasattr(POST_IMPORT_LOCALS_KEYS[key], "__code__")):
globals().update(
{
key: namespaced_function(
POST_IMPORT_LOCALS_KEYS[key], globals(), ()
)
}
)
global avail_images, avail_sizes, avail_locations, script
global list_nodes, list_nodes_full, list_nodes_select
# open a connection in a specific region
conn = get_conn(**{'location': get_location()})
# Init the libcloud functions
avail_locations = namespaced_function(avail_locations, globals(), (conn,))
avail_images = namespaced_function(avail_images, globals(), (conn,))
avail_sizes = namespaced_function(avail_sizes, globals(), (conn,))
script = namespaced_function(script, globals(), (conn,))
list_nodes = namespaced_function(list_nodes, globals(), (conn,))
list_nodes_full = namespaced_function(list_nodes_full, globals(), (conn,))
list_nodes_select = namespaced_function(
list_nodes_select, globals(), (conn,)
)
log.warning('This driver has been deprecated and will be removed in the '
'Boron release of Salt. Please use the ec2 driver instead.')
return __virtualname__
def get_configured_provider():
'''
Return the first configured instance.
'''
return config.is_provider_configured(
__opts__,
'aws',
('id', 'key', 'keyname', 'securitygroup', 'private_key')
)
def get_dependencies():
'''
Warn if dependencies aren't met.
'''
return config.check_driver_dependencies(
__virtualname__,
{'libcloud': HAS_LIBCLOUD}
)
def enable_term_protect(name, call=None):
'''
Enable termination protection on a node
CLI Example:
.. code-block:: bash
salt-cloud -a enable_term_protect mymachine
'''
if call != 'action':
raise SaltCloudSystemExit(
'This action must be called with -a or --action.'
)
return _toggle_term_protect(name, True)
def disable_term_protect(name, call=None):
'''
Disable termination protection on a node
CLI Example:
.. code-block:: bash
salt-cloud -a disable_term_protect mymachine
'''
if call != 'action':
raise SaltCloudSystemExit(
'This action must be called with -a or --action.'
)
return _toggle_term_protect(name, False)
def _toggle_term_protect(name, enabled):
'''
Toggle termination protection on a node
'''
# region is required for all boto queries
region = get_location(None)
# init botocore
vm_ = get_configured_provider()
session = botocore.session.get_session() # pylint: disable=E0602
session.set_credentials(
access_key=config.get_cloud_config_value(
'id', vm_, __opts__, search_global=False
),
secret_key=config.get_cloud_config_value(
'key', vm_, __opts__, search_global=False
)
)
service = session.get_service('ec2')
endpoint = service.get_endpoint(region)
# get the instance-id for the supplied node name
conn = get_conn(location=region)
node = get_node(conn, name)
params = {
'instance_id': node.id,
'attribute': 'disableApiTermination',
'value': 'true' if enabled else 'false',
}
# get instance information
operation = service.get_operation('modify-instance-attribute')
http_response, response_data = operation.call(endpoint, **params)
if http_response.status_code == 200:
msg = 'Termination protection successfully {0} on {1}'.format(
enabled and 'enabled' or 'disabled',
name
)
log.info(msg)
return msg
# No proper HTTP response!?
msg = 'Bad response from AWS: {0}'.format(http_response.status_code)
log.error(msg)
return msg

Some files were not shown because too many files have changed in this diff Show more