mod
parent
377f30f107
commit
38c1c95520
159
README.md
159
README.md
|
@ -10,6 +10,7 @@
|
|||
- [Master на Debian 12](#master-на-debian-12)
|
||||
- [Minion на CentOS Stream 9](#minion-на-centos-stream-9)
|
||||
- [Minion на Debian 12](#minion-на-debian-12)
|
||||
- [Автодополнение команд](#автодополнение-команд)
|
||||
- [Настройка master](#настройка-master)
|
||||
- [Настройка minion](#настройка-minion)
|
||||
- [Ключи](#ключи)
|
||||
|
@ -34,6 +35,9 @@
|
|||
- [Модули исполнения](#модули-исполнения)
|
||||
- [Несколько полезных функций](#несколько-полезных-функций)
|
||||
- [Формулы](#формулы)
|
||||
- [Модули состояний](#модули-состояний)
|
||||
- [Нельзя использовать в одном состоянии один модуль несколько раз!](#нельзя-использовать-в-одном-состоянии-один-модуль-несколько-раз)
|
||||
- [Порядок исполнения](#порядок-исполнения)
|
||||
- [Источники](#источники)
|
||||
|
||||
***
|
||||
|
@ -120,6 +124,33 @@ systemctl enable --now salt-minion
|
|||
|
||||
[вверх](#краткое-руководство-по-salt-stack)
|
||||
|
||||
## Автодополнение команд
|
||||
|
||||
В Альт автодополнение работает из коробки, а вот в Debian его необходимо дополнительно настраивать.
|
||||
|
||||
В первую очередь необходимо убедиться в том, что установлен пакет `bash-completion`
|
||||
|
||||
```bash
|
||||
root@deb-master:~# apt-cache policy bash-completion
|
||||
bash-completion:
|
||||
Установлен: 1:2.11-6
|
||||
Кандидат: 1:2.11-6
|
||||
Таблица версий:
|
||||
*** 1:2.11-6 500
|
||||
500 http://deb.debian.org/debian bookworm/main amd64 Packages
|
||||
100 /var/lib/dpkg/status
|
||||
```
|
||||
|
||||
если не установлен - установить. Это добавит автодополнение для встроенных команд bash, для того, чтобы заработало автодополнение в salt, дополнительно необходимо добавить профиль автодополнения
|
||||
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/saltstack/salt/develop/pkg/salt.bash
|
||||
cp salt.bash /etc/bash_completion.d/
|
||||
source /etc/bash_completion.d/salt.bash
|
||||
```
|
||||
|
||||
Теперь по двойному Tab в командах salt на мастере должны отображаться возможные варианты дополнения команд.
|
||||
|
||||
## Настройка master
|
||||
|
||||
Описание возможных директив конфигурационного файла приводится в файле `/etc/salt/master` или в документации <https://docs.saltproject.io/en/latest/ref/configuration/master.html>
|
||||
|
@ -524,6 +555,134 @@ common_pkgs_installed:
|
|||
|
||||
[вверх](#краткое-руководство-по-salt-stack)
|
||||
|
||||
## Модули состояний
|
||||
|
||||
Модули состояний похожи на модули исполнения с той разницей, что модули исполнения используются для текущего выполнения в командной строке, а модули состояний описываются в формулах, которые должны применяться на миньонах. Чаще функционал модулей исполнения и модулей состояний идентичен, но в некоторых модулях могут быть отличия.
|
||||
|
||||
```yml
|
||||
---
|
||||
|
||||
# Пример системного состояния для RPM-дистрибутивов.
|
||||
# Обновляет ядро Linux и корректирует конфигурацию загрузчика.
|
||||
|
||||
kernel updated:
|
||||
pkg.uptodate:
|
||||
- pkgs:
|
||||
- kernel
|
||||
- refresh: true
|
||||
file.comment:
|
||||
- name: '/etc/default/grub'
|
||||
- regex: '^GRUB_DEFAULT|^GRUB_DISABLE_SUBMENU'
|
||||
cmd.run:
|
||||
- name: 'grub2-mkconfig -o /boot/grub2/grub.cfg'
|
||||
module.run:
|
||||
- name: system.reboot
|
||||
```
|
||||
|
||||
В примере указаны модули состояний `pkg`, `file`, `cmd` каждый вызывается с конкретной функцией - `pkg.uptodate`, `file.comment`, `cmd.run`
|
||||
|
||||
Модуль `module.run` - позволяет в файле описания состояний вызвать модуль исполнения. Так в примере с помощью этого модуля вызван модуль исполнения `system.reboot`
|
||||
|
||||
### Нельзя использовать в одном состоянии один модуль несколько раз!
|
||||
|
||||
Например такое состояние завершится ошибкой потому что модуль `pkg` используется дважды
|
||||
|
||||
```yml
|
||||
---
|
||||
|
||||
common_pkgs_installed:
|
||||
pkg.installed:
|
||||
- pkgs:
|
||||
- git
|
||||
- mc
|
||||
- refresh: true
|
||||
pkg.latest:
|
||||
- name: mc
|
||||
```
|
||||
|
||||
```bash
|
||||
deb-master:
|
||||
Data failed to compile:
|
||||
----------
|
||||
ID 'common_pkgs_installed' in SLS 'highstate.common_pkgs_installed' contains multiple state declarations of the same type
|
||||
```
|
||||
|
||||
## Порядок исполнения
|
||||
|
||||
- по порядку описания
|
||||
|
||||
```yml
|
||||
---
|
||||
|
||||
state1:
|
||||
test.succeed_with_changes
|
||||
|
||||
state2:
|
||||
test.succeed_with_changes
|
||||
|
||||
state3:
|
||||
test.succeed_with_changes
|
||||
|
||||
state4:
|
||||
test.succeed_with_changes
|
||||
```
|
||||
|
||||
- по флагу `ordered`
|
||||
|
||||
```yml
|
||||
---
|
||||
|
||||
state1:
|
||||
test.succeed_with_changes:
|
||||
- order: 3
|
||||
|
||||
state2:
|
||||
test.succeed_with_changes:
|
||||
- order: 2
|
||||
|
||||
state3:
|
||||
test.succeed_with_changes:
|
||||
- order: 1
|
||||
|
||||
state4:
|
||||
test.succeed_with_changes:
|
||||
- order: 4
|
||||
```
|
||||
|
||||
Выполнится в порядке order - `order: 1`, `order: 2`, `order: 3`, `order: 4`
|
||||
|
||||
- по реквизитам
|
||||
|
||||
```yml
|
||||
---
|
||||
|
||||
state1:
|
||||
test.succeed_with_changes: []
|
||||
|
||||
state2:
|
||||
test.succeed_with_changes:
|
||||
- require:
|
||||
- state1
|
||||
|
||||
state3:
|
||||
test.succeed_with_changes:
|
||||
- onchanges: # А так же watch, listen
|
||||
- state1
|
||||
- test: state2
|
||||
|
||||
state4:
|
||||
test.succeed_with_changes:
|
||||
- prereq:
|
||||
- state1
|
||||
|
||||
unhappy_state:
|
||||
test.succeed_with_changes:
|
||||
- onfail:
|
||||
- state*
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Источники
|
||||
|
||||
<https://www.youtube.com/watch?v=6zY41M2anrY></br>
|
||||
|
|
Loading…
Reference in New Issue