All Projects → zulily → Alkali

zulily / Alkali

Licence: apache-2.0
A SaltStack starter kit of sorts including state and pillar trees that provide just the basics for provisioning Linux instances that may be built upon.

Labels

Projects that are alternatives of or similar to Alkali

ISalt
ISalt: Interactive Salt Programming
Stars: ✭ 61 (+177.27%)
Mutual labels:  saltstack
Salt Scanner
Linux vulnerability scanner based on Salt Open and Vulners audit API, with Slack notifications and JIRA integration
Stars: ✭ 261 (+1086.36%)
Mutual labels:  saltstack
Awesome Saltstack
🧂 A collaborative curated list of awesome SaltStack resources, tutorials and other salted stuff.
Stars: ✭ 430 (+1854.55%)
Mutual labels:  saltstack
salt-lint
A command-line utility that checks for best practices in SaltStack.
Stars: ✭ 111 (+404.55%)
Mutual labels:  saltstack
OMS
自动化运维系统,QQ群342844540,博客http://ywzhou.blog.51cto.com
Stars: ✭ 28 (+27.27%)
Mutual labels:  saltstack
Docker Android
Android in docker solution with noVNC supported and video recording
Stars: ✭ 4,042 (+18272.73%)
Mutual labels:  saltstack
salt-kubeadm
SaltStack使用kubeadm方式自动化部署Kubernetes(版本v1.19.6)现已支持高可用!
Stars: ✭ 59 (+168.18%)
Mutual labels:  saltstack
Introduction To Saltstack
Stars: ✭ 18 (-18.18%)
Mutual labels:  saltstack
masterless-salt-base
Quickly bootstrap a generic(ish) Ubuntu server ready to host Docker containers
Stars: ✭ 26 (+18.18%)
Mutual labels:  saltstack
Saltadmin
基于SaltStack的自动化运维平台
Stars: ✭ 388 (+1663.64%)
Mutual labels:  saltstack
devops
开发运维管理系统
Stars: ✭ 49 (+122.73%)
Mutual labels:  saltstack
saltstack-kubernetes
Deploy the lowest-cost production ready Kubernetes cluster using terraform and saltstack.
Stars: ✭ 47 (+113.64%)
Mutual labels:  saltstack
Hubble
Hubble is a modular, open-source security compliance framework. The project provides on-demand profile-based auditing, real-time security event notifications, alerting, and reporting. HubbleStack is a free and open source project made possible by Adobe. https://github.com/adobe
Stars: ✭ 313 (+1322.73%)
Mutual labels:  saltstack
sift-saltstack
Salt States for Configuring the SIFT Workstation
Stars: ✭ 82 (+272.73%)
Mutual labels:  saltstack
Salty Whales
Extra ordinary Docker images for Salt. Whales love Salt.
Stars: ✭ 5 (-77.27%)
Mutual labels:  saltstack
kubernetes-dev-stack
Automation of Kubernetes 1.6.0.alpha3 on Centos 7.3 (kernel 4.9.5, docker 1.13.1, flannel 0.7.0)
Stars: ✭ 15 (-31.82%)
Mutual labels:  saltstack
Soms
SaltStack自动化运维平台-SOMS
Stars: ✭ 274 (+1145.45%)
Mutual labels:  saltstack
Junos Automation With Saltstack
How to automate Junos with SaltStack (Event-Driven automation)
Stars: ✭ 19 (-13.64%)
Mutual labels:  saltstack
Salt States
My Salt States
Stars: ✭ 5 (-77.27%)
Mutual labels:  saltstack
Salt Kubebin
SaltStack使用二进制方式自动化部署Kubernetes(版本v1.10.3)
Stars: ✭ 316 (+1336.36%)
Mutual labels:  saltstack

====== alkali

alkali is a collections of SaltStack states and pillar data that provide just the basics for provisioning Linux instances that may be built upon. alkali is a starter kit of sorts, to help new users to SaltStack get up-and-running quickly with the most commonly used, core packages.

Discussion

Salt state and pillar trees reside within this repository under the srv directory. These trees are meant to be run within a "provision" environment, and only when a special grain is set to True: in_provisioning.

The provision environment is intended to span across minions that are part of any salt environment. It contains a very common collection of states and is generally static, the intent is that these states will only be executed a single time like so:

::

salt -G 'in_provisioning:True' state.highstate saltenv=provision -l debug

States in other environments run post-provision phase, may change settings previously applied. The provision phase is not intended to meet the precise requirements of all possible instance types, but rather to apply useful defaults that may be extended and overridden from more specific environments and targeting.

While very uncommon, it is occasionally necessary to re-run an updated provision environment state file. If the dnsmasq_cache states are updated for example and it is desirable to run the updates on any hosts matching .dev. in the hostname:

::

salt '.dev.' state.sls dnsmasq_cache saltenv=provision -l debug

Getting Started

  • These states are currently only compatible with debian-based systems, with a few specific states ony compatible with Ubuntu. They have only been tested and are known to work on Ubuntu 14.04 and some later Ubuntu releases.

  • Provision states will work with a master minion setup in which the saltenv may be specified as an argument to the salt or salt-call commands.

  • Clone this repository and copy relevant directories to /srv/salt/provision and /srv/pillar/provision, most likely on a salt master

  • Bring up any instances that will be part of the cluster, with recent base Ubuntu installs preferably.

  • Make sure to have a base environment, with an empty top.sls file at a minimum, /srv/salt/base and /srv/pillar/base

  • Configure file_roots and pillar_roots (e.g. in /etc/salt/master), for example:

::

file_roots: base: - /srv/salt/base provision: - /srv/salt/provision

pillar_roots: base: - /srv/pillar/base provision: - /srv/pillar/provision

  • Any minions to be provisioned must have the in_provisioning grain set:

::

salt-call grains.setval in_provisioning True

  • Provision minions. From the master:

::

salt -G 'in_provisioning:True' state.highstate saltenv=provision -l debug

Compound targeting may be useful in some scenarios.

  • Once provisioned, removing the in_provisioning grain is recommended. If left in place, any general highstate will run the provision states, which is most likely undesirable.

::

salt-call grains.delval in_provisioning destructive=True

Included States

All of the included states have a README.rst file with additional details, but to summarize:

.. contents:: :local:

aliases

/etc/aliases management, based on pillar data.

apt

States for configuring apt.

apt-sources

Management of apt sources.list.d files. Ubuntu-specific by default.

base-packages

A list of packages to install at provision time, which require no configuration management.

disy

Creates symlinks and directories based on pillar settings.

dnsmasq-cache

Installs and configures dnsmasq as a local caching daemon.

hosts-block

Management of /etc/hosts to ensure consistency, utilizes pillar data.

iptables-persistent

Installs iptables and performs tuning, but does not apply a ruleset.

kernel-install

Provides a simple mechanism for installing a specific kernel version and setting it to be the grub default. Typically run ad-hoc only.

limits

Provides pillar-driven limits.conf and limits.conf.d management.

motd

Management of motd legalese to be displayed at login.

postfix

Basic postfix installation and configuration for a smarthost setup.

provision-final

The last state file to be run, creates /root/.alkali_provisioned.txt which indicates when the provision highstate was run.

rsyslog-client

Brings up rsyslog with logging to a centralized syslog server.

sysctl

Pillar-driven kernel tuning, with reasonable defaults and host-function-specific setting capabilities.

timezone

Sets the timezone.

Other States

A few noteworthy formulas and states that are absent and will most likely be useful to a wide audience:

  • ntp - Using the SaltStack community formula is recommended
  • openssh - Using the SaltStack community formula is recommended
  • Log shipping and monitoring agents - nrpe, zabbix, the splunk forwarder, newrelic, etc.
  • Account management-related states
  • resolvconf management

ToDo / Known Issues

  • Add support for non-Debian-based distributions and better non-Ubuntu-specific support in general.

License

Apache License, version 2.0. Please see LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].