• set of repositories
  • namespaces
  • DSL
  • depsolving
  • overlays
  • templates provided by dependencies or higher abstraction like nix -

web.apache

DB
MySQL PostgreSQL ODBC
HTTP
Apache
VirtualHost

Nginx SNIProxy

STMP
Postfix
IMAP
Dovecot

db.pg db.maria db.sqlite

net.sshd net.apache net.postfix net.dovecot

net.mail.postfix - alias_net.postfix or alias net.postfix to net.mail.postfix

cert.dummy cert.le

yaml2json

infer: os_distro os_version os_version_min

el: os_distro in ["centos", "rhel"] fed: os_distro == "fedora" deb: os_distro == "debian"

-- common includes include repo include pkg

-- play

hostname: srv01 domain: example.org selinux: true

pkg:
  • vim
selinux?
pkg: - policykit-python

include hosts include resolv include distro include cron include mailserver include mailman include pagure

-- pkg def pkg args:

el || fed?
shell "yum install -y {{ args|words }}"
deb?
shell "apt-get install -y {{ args|words }}"

-- hosts template hosts.t /etc/hosts

-- resolv template resolv.t /etc/resolv

-- cron allow_users: false

allow_users?
rm /etc/cron.deny

-- distro fedora?

svc-off dnf-makecache svc-off dnf-makecache.timer
el?
include epel

-- epel enable: false epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ os_version }}.noarch.rpm" epel_key_path: "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ os_version }}"

repo: url=epel_repo_url key_path=epel_key_path

!!! output should show path e.g. conf.net.resolv:

diff:

concise output if not changed conf.net.resolve: up to date

Contributors
Branches
master
Source GIT URLs
SSH
GIT
created a year ago