saltstack
saltstack - minion, master, api, cloud, syndic and ssh setup and configuration
Version information
released Dec 17th 2018
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'eyp-saltstack', '0.1.13'
Learn more about managing modules with a PuppetfileDocumentation
eyp/saltstack — version 0.1.13 Dec 17th 2018
saltstack
Table of Contents
Overview
saltstack - minion, master, api, cloud, syndic and ssh setup and configuration
Module Description
This module installs saltstack components:
- minion
- master
- api
- cloud
- syndic
- ssh
Using a yum/apt repo as appropriate
Setup
What saltstack affects
- Installs saltstack repo
- Installs saltstack packages and dependencies
- Manages configuration files
- Manages services
Setup Requirements
This module requires pluginsync enabled for puppet <=3.8
Beginning with saltstack
A single node configuration example with ACLs:
class { 'saltstack::minion':
master => '127.0.0.1'
}
class { 'saltstack::master': }
saltstack::master::fileroot { 'base':
files => [ '/srv/salt-data/base' ],
}
saltstack::master::pillar { 'base':
files => [ '/srv/salt-data/pillar' ],
}
class { 'saltstack::cloud': }
class { 'saltstack::api': }
class { 'saltstack::syndic': }
saltstack::master::key { $::fqdn:
status => 'accepted'
}
saltstack::master::acl { 'saltuser':
match => [ '.*', '@runner' ],
}
saltstack::master::acl { 'saltuser2':
match => [ '.*', '@runner' ],
}
Usage
Installing a salt minion
class { 'saltstack::minion':
master => 'salt-master.systemadmin.es'
}
Installing a salt master
class { 'saltstack::master': }
Selecting a specific salt version
class { 'saltstack::repo':
version => '2017.7',
}
Reference
references
saltstack::master::key
WARNING: keys are not going to be accepted/rejected in the first run if saltstak is not yet installed
- hostname: = $name,
- status: = 'accepted',
classes
saltstack
Placeholder, not needed
saltstack::repo
saltstack repo installation
- srcdir: Where to store temporal files (default: /usr/local/src)
- version: saltstack version to install, does not update to the latest once it is already installed (default: latest)
saltstack::minion
- master: 'saltmaster',
- master_type: = 'failover',
- master_failback: = false,
- random_master: = false,
- master_port: = '4506',
- manage_package: = true,
- package_ensure: = 'installed',
- manage_service: = true,
- manage_docker_service: = true,
- service_ensure: = 'running',
- service_enable: = true,
- minion_id: = $::fqdn,
- hash_type: = 'sha256',
saltstack::master
- manage_package: = true,
- package_ensure: = 'installed',
- manage_service: = true,
- manage_docker_service: = true,
- service_ensure: = 'running',
- service_enable: = true,
- interface: = '0.0.0.0',
- ipv6: = false,
- user: = 'root',
- publish_port: = '4505',
- ret_port: = '4506',
- keep_jobs: = '170',
- max_event_size: = '10485760',
- hash_type: = 'sha256',
- masted_recurse: = true,
- masted_purge: = true,
saltstack::api
- manage_package: = true,
- package_ensure: = 'installed',
- manage_service: = true,
- manage_docker_service: = true,
- service_ensure: = 'running',
- service_enable: = true,
- port: = '8000',
- host: = undef,
- debug: = false,
- ssl_crt: = undef,
- ssl_key: = undef,
- disable_ssl: = undef,
- webhook_disable_auth: = false,
- webhook_url: = undef,
- thread_pool: = '100',
- socket_queue_size: = '30',
- expire_responses: = false,
- max_request_body_size: = '1048576',
- collect_stats: = false,
- static: = undef,
- static_path: = undef,
- app: = undef,
- app_path: = undef,
- root_prefix: = '/',
- generate_selfsigned_cert: = true,
- rest_timeout: = '7200',
saltstack::cloud
- manage_package: = true,
- package_ensure: = 'installed',
- keysize: = '2048',
- script: = undef,
- log_file: = '/var/log/salt/cloud',
- log_level: = 'info',
- log_level_logfile: = 'info',
- log_datefmt: = '%Y-%m-%d %H:%M:%S',
- log_fmt_logfile: = undef,
- log_granular_levels: = undef,
- delete_sshkeys: = false,
- install_windows_dependencies: = true,
- install_vsphere_dependencies: = true,
saltstack::ssh
- manage_package: = true,
- package_ensure: = 'installed',
saltstack::syndic
- manage_package: = true,
- package_ensure: = 'installed',
- manage_service: = true,
- manage_docker_service: = true,
- service_ensure: = 'running',
- service_enable: = true,
Limitations
salt-minion
- RedHat 6 and derivatives
- RedHat 7 and derivatives
- Ubuntu 14.04
- Ubuntu 16.04
- Ubuntu 18.04
server components
- RedHat 7 and derivatives
- Ubuntu 16.04
- Ubuntu 18.04
Development
We are pushing to have acceptance testing in place, so any new feature should have some test to check both presence and absence of any feature
TODO
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
CHANGELOG
0.1.13
- bugfix SaltStack 2018.3
0.1.12
- added SaltStack 2018.3
0.1.11
- added deleted state for salt keys
- added version_minor to install a specific salt version
0.1.10
- reorder minion dependencies
0.1.9
- added SLES 11.3 support
- added manage_config to saltstack::minion
0.1.8
- added SLES 12.3 support
0.1.7
- added version selector via saltstack::repo
- latest (latest available, changes among time)
- 2017.7
- 2016.11
- 2016.3
0.1.6
- salt::cloud:
- bugfix log_datefmt
- flag to manage vSphere dependencies (true by default)
- salt::api:
- added saltstack::api::rest_timeout (default: 7200)
- salt::master:
- added keys management
- acl management for salt-master via eAuth
0.1.5
- added Ubuntu 18.04 support
- added suport for:
- saltstack::ssh
- saltstack::api
- saltstack::cloud
0.1.4
- repo is downloaded using the download type from eyplib 0.1.10
0.1.3
- dropped CentOS 5 support
0.1.2
- added master multimaster (salt::minion::master can be a string, for backward compatibility, or an array)
- added multimaster related variables:
- master_type
- master_failback
- random_master
- added master_port variable
- added Ubuntu 14.04 and Ubuntu 16.04 support
0.1.1
- minion_id under puppet control
0.1.0
- initial release
Dependencies
- puppetlabs/stdlib (>= 1.0.0 < 9.9.9)
- puppetlabs/concat (>= 1.2.3 < 9.9.9)
- eyp/eyplib (>= 0.1.10 < 0.2.0)
- eyp/python (>= 0.1.7 < 0.2.0)
- eyp/apt (>= 0.1.6 < 0.2.0)