6.0 KiB
Components - Salt States
- chrony
- dnsmasq
- docker
- firewalld
- hostapd
- hosts
- mariadb
- nfs-server
- nginx
- packages
- podman
- pxe
- rancher
- remote-desktop
- rmt
- ssh
- tlu-harvester
- vlan
- wol
chrony
Chrony is an implementation of the Network Time Protocol (NTP). This step will install chrony and configure upstream pools and start serving NTP on internal networks
# salt/pillars/chrony.sls
chrony:
pool:
- 0.se.pool.ntp.org
- 1.se.pool.ntp.org
- 2.se.pool.ntp.org
- 3.se.pool.ntp.org
dnsmasq
Serves dhcp and dns for internal network
This step will install dnsmasq and configure dhcp for all internal networks defined in salt/pillars/network.sls
It will also configure the pxe next step, etc.
docker
This step will create podman container running a local docker registry pull through instance, also a systemd service called registry-container.service
is created.
# salt/pillars/docker.sls
docker:
username:
access_token:
url: docker.io/registry
tag: 2.7.1
firewalld
Configures firewalld services and networks
Installs and configures hostapd to use the wireless interface as a access point
# salt/pillars/hostapd.sls
hostapd:
country_code: SE
ssid: Transportable Lab Unit
channel: 6
wpa_passphrase: linux2linux
hosts
Configures the hostname and /etc/hosts
file so dnsmasq has correct information
mariadb
Installs and configures mariadb, rmt needs a database
# salt/pillars/mysql.sls
mysql:
root_password: linux
nfs-server
Installs nfs-server and creates a backup export /srv/exports/backups <internal network>/24(rw,no_root_squash,sync,no_subtree_check)
nginx
Installs nginx and configures the www.suse.lan web site
packages
installs additional packages
# salt/pillars/packages.sls
packages:
- vim
- jq
podman
Installs podman and configures it to use the docker registry proxy
rancher
Installs rancher server in a podman container, creates a systemd unit called rancher
The container redirects host port 6080->80
and 6443->443
to the container.
It also adds a nginx reverse proxy configuration to rancher.suse.lan
# salt/pillars/rancher.sls
rancher:
ca_passphrase: rancher
url: docker.io/rancher/rancher
tag: v2.6.1
bootstrapPassword: rancher
remote-desktop
installs xorg-x11-Xvnc
disables wayland logins
and creates a vnc login session for the user running update.sh
# salt/pillars/remote-desktop.sls
remote-desktop:
password: linux0
rmt
installs and configures rmt
# salt/pillars/rmt.sls
rmt:
ca_passphrase: linux
db_password: linux
scc:
username:
password:
stopped_services:
- rmt-server-mirror.timer
- rmt-server-sync.timer
- rmt-server-systems-scc-sync.timer
products:
-
name: SUSE Linux Enterprise Server 15 SP3 x86_64
id: 2140
-
name: SUSE Linux Enterprise High Performance Computing 15 SP3 x86_64
id: 2133
-
name: Containers Module 15 SP3 x86_64
id: 2157
-
name: SUSE Linux Enterprise Micro 5.0 x86_64
id: 2202
-
name: SUSE Linux Enterprise Micro 5.1 x86_64
id: 2283
-
name: SUSE Linux Enterprise High Availability Extension 15 SP3 x86_64
id: 2195
-
name: openSUSE Leap 15.3 aarch64
id: 2233
-
name: openSUSE Leap 15.3 x86_64
id: 2236
-
name: Public Cloud Module 15 SP3 x86_64
id: 2175
ssh
installs openSSH server and start the daemon. It also configures the authorized keys for remote sessions to the admin server. add ssh public keys to the user-pub-keys in your local.sls and they will be added
# salt/pillars/ssh.sls
ssh:
user-pub-keys: []
tlu-harvester
This state creates all files necessary to install a harvester cluster on node1, node2 and node3.
It will create the pxe configurations and also manifests that can be applied to your harvester cluster when it's up and running. The manifests will land in the $HOME/tlu-havester
directory, just apply them with kubectl
It will also download some images and place them in corresponding folder on the www.suse.lan.
Id you download SUSE images and place them in /srv/www/htdocs/images/suse/
and run this state, manifests for them will be created and added to the $HOME/tlu-harvester
directory
# salt/pillars/tlu-harvester.sls
tlu-harvester:
version: 0.3.0
dns_host: harvester
password: rancher
token: ThisShouldBeConfiguredInYour_local.sls
os:
ssh_authorized_keys: []
password: rancher
install:
mgmt-interface: enp2s0f0
device: /dev/nvme0n1
images:
opensuse:
- name: openSUSE Leap 15.3
url: https://download.opensuse.org/distribution/leap/15.3/appliances/openSUSE-Leap-15.3-JeOS.x86_64-OpenStack-Cloud.qcow2
checksum: 7207cce5b77d9d040610c39cd3d09437489797882b1b834acfb8b0f9d82be26c
ns: default
- name: openSUSE MicroOS
url: https://download.opensuse.org/tumbleweed/appliances/openSUSE-MicroOS.x86_64-kvm-and-xen.qcow2
ubuntu:
- name: ubuntu 20.04 (Focal Fossa)
url: https://cloud-images.ubuntu.com/focal/20211015/focal-server-cloudimg-amd64.img
checksum: c7adca2038a5fdda38328ecd461462bf4ab2cbaec2cc1bfd9340d9ee6bc543a8
ns: default
- name: ubuntu 21.04 (Hirsute Hippo)
url: https://cloud-images.ubuntu.com/hirsute/20211017/hirsute-server-cloudimg-amd64.img
checksum: 2d8c7f872aab587f70268a34f031c6380197f6940b29eb5f241050bb98ba420e
vlan
configures the vlan configuration, settings are in salt/pillar/network.sls
wol
Creates $HOME/wol
bash script so I can send Wake on LAN packages to node1, node2 and node3.
mac address needs to be set in your local.sls
network:
wol:
1: xx:xx:xx:xx:xx:9b
2: xx:xx:xx:xx:xx:0a
3: xx:xx:xx:xx:xx:58