Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

287 lines (217 sloc) 5.816 kb
\documentclass[landscape,a4paper,10pt]{article}
\usepackage{multicol}
\usepackage[landscape]{geometry}
\usepackage{concmath}
\usepackage[T1]{fontenc}
\geometry{top=.5in,left=.5in,right=.5in,bottom=.5in}
\pagestyle{empty}
\setcounter{secnumdepth}{0}
\setlength\columnseprule{.4pt}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.5ex}
\begin{document}
\begin{multicols}{3}
\bfseries{\Huge{Salt States}}\\[-0.3cm]
\line(1,0){125}\\
\bfseries{\LARGE{top.sls}}
The \texttt{top.sls} file is used to map what SLS modules get loaded onto what minions via the state system.\\
It is located in the file defined in the \texttt{file_roots} variable of the
salt master configuration file which is found in
\texttt{CONFIG_DIR}/master.
The file roots is defined like this by default.
\begin{verbatim}
file_roots:
base:
- /srv/salt
\end{verbatim}
Here is an example \texttt{top.sls} file which uses \texttt{pkg}, \texttt{file} and \texttt{service} states:
\begin{verbatim}
apache:
pkg:
- installed
- version: 2.2.23
service:
- running
- enable: True
/var/www/index.html: # ID declaration
file: # state declaration
- managed # function
- source: salt://webserver/index.html
- user: root
- group: root
- mode: 644
- require: # requisite declaration
- pkg: apache # requisite reference
\end{verbatim}
\bfseries{\LARGE{file}}
Manages files.
FUNCTIONS
\begin{itemize}
\item \texttt{absent} -- verify that a file or directory is absent
\item \texttt{accumulated} -- prepare accumulator which can be used for template in \texttt{file.managed}
\item \texttt{append} -- put some text at the end of file
\item \texttt{comment} -- comment out some lines
\item \texttt{directory} -- ensure that a directory is present
\item \texttt{exists} -- ensure that a directory or file is present
\item \texttt{managed} -- this file is managed by the salt master and can be run through templating system
\item \texttt{patch} -- apply a patch to a file
\item \texttt{recurse} -- recurse through a subdirectory on master
\item \texttt{rename} -- rename a file
\item \texttt{sed} -- edit a file
\item \texttt{symlink} -- create a symlink
\item \texttt{touch} -- create an empty file or update the access and modification time
\item \texttt{uncomment} -- uncomment lines in a file
\end{itemize}
\begin{verbatim}
/etc/http/conf/http.conf:
file.managed:
- source: salt://apache/http.conf
- user: root
- group: root
- mode: 644
- template: jinja
- context:
custom_var: "override"
- defaults:
custom_var: "default value"
other_var: 123
\end{verbatim}
\bfseries{\LARGE{pkg}}
Manage software packages.
FUNCTIONS
\begin{itemize}
\item \texttt{installed} -- verify if a package is installed
\item \texttt{latest} -- verify that the package is the latest version
\item \texttt{purged}
\item \texttt{removed} -- verify if the package is removed
\end{itemize}
\begin{verbatim}
httpd:
pkg:
- installed
- repo: mycustomrepo
- skip_verify: True
- version: 2.0.6~ubuntu3
\end{verbatim}
\bfseries{\LARGE{service}}
Manage system daemons/services.
FUNCTIONS
\begin{itemize}
\item \texttt{dead}
\item \texttt{disabled}
\item \texttt{enabled}
\item \texttt{mod\_watch}
\item \texttt{running}
\end{itemize}
\begin{verbatim}
apache:
service:
- running
- name: httpd
- enable: True
- sig: httpd
\end{verbatim}
\bfseries{\LARGE{cmd}}
Execution of arbitrary commands.
FUNCTIONS
\begin{itemize}
\item \texttt{mod\_watch}
\item \texttt{run}
\item \texttt{script}
\item \texttt{wait}
\item \texttt{wait\_script}
\end{itemize}
\begin{verbatim}
date > /tmp/salt-run:
cmd:
- run
\end{verbatim}
\bfseries{\LARGE{cron}}
Manage cron jobs (scheduler).
\begin{verbatim}
date > /tmp/crontest:
cron.present:
- user: root
- minute: 7
- hour: 2
\end{verbatim}
FUNCTIONS
\begin{itemize}
\item \texttt{absent}
\item \texttt{file} -- provides file.managed-like functionality (templating, etc.) for a pre-made crontab file, to be assigned to a given user
\item \texttt{present}
\end{itemize}
\bfseries{\LARGE{user}}
The user module is used to create and manage user settings, users can be set as either absent or present.
\begin{verbatim}
fred:
user.present:
- fullname: Fred Jones
- shell: /bin/zsh
- home: /home/fred
- uid: 4000
- gid: 4000
- groups:
- wheel
- storage
- games
testuser:
user.absent
\end{verbatim}
FUNCTIONS
\bfseries{\LARGE{group}}
The group module is used to create and manage unix group settings, groups can be either present or absent.
FUNCTIONS
\begin{itemize}
\item \texttt{present}
\item \texttt{absent}
\end{itemize}
\begin{verbatim}
cheese:
group.present:
- gid: 7648
- system: True
\end{verbatim}
\bfseries{\LARGE{git}}
Interaction with Git repositories.
\begin{verbatim}
https://github.com/saltstack/salt.git:
git.latest:
- rev: develop
- target: /tmp/salt
\end{verbatim}
\bfseries{\LARGE{host}}
Management of addresses and names in hosts file.
\begin{verbatim}
salt-master:
host.present:
- ip: 192.168.0.42
\end{verbatim}
\bfseries{\LARGE{kmod}}
Loading and unloading of kernel modules.
\begin{verbatim}
kvm_amd:
kmod.present
pcspkr:
kmod.absent
\end{verbatim}
\bfseries{\LARGE{mount}}
Mounting of filesystems.
\begin{verbatim}
/mnt/sdb:
mount.mounted:
- device: /dev/sdb1
- fstype: ext4
- mkmnt: True
- opts:
- defaults
\end{verbatim}
\bfseries{\LARGE{sysctl}}
Configuration of the Linux kernel using sysctl.
\begin{verbatim}
vm.swappiness:
sysctl.present:
- value: 20
\end{verbatim}
\end{multicols}
\end{document}
Jump to Line
Something went wrong with that request. Please try again.