mod
parent
377f30f107
commit
38c1c95520
159
README.md
159
README.md
|
@ -10,6 +10,7 @@
|
||||||
- [Master на Debian 12](#master-на-debian-12)
|
- [Master на Debian 12](#master-на-debian-12)
|
||||||
- [Minion на CentOS Stream 9](#minion-на-centos-stream-9)
|
- [Minion на CentOS Stream 9](#minion-на-centos-stream-9)
|
||||||
- [Minion на Debian 12](#minion-на-debian-12)
|
- [Minion на Debian 12](#minion-на-debian-12)
|
||||||
|
- [Автодополнение команд](#автодополнение-команд)
|
||||||
- [Настройка master](#настройка-master)
|
- [Настройка master](#настройка-master)
|
||||||
- [Настройка minion](#настройка-minion)
|
- [Настройка minion](#настройка-minion)
|
||||||
- [Ключи](#ключи)
|
- [Ключи](#ключи)
|
||||||
|
@ -34,6 +35,9 @@
|
||||||
- [Модули исполнения](#модули-исполнения)
|
- [Модули исполнения](#модули-исполнения)
|
||||||
- [Несколько полезных функций](#несколько-полезных-функций)
|
- [Несколько полезных функций](#несколько-полезных-функций)
|
||||||
- [Формулы](#формулы)
|
- [Формулы](#формулы)
|
||||||
|
- [Модули состояний](#модули-состояний)
|
||||||
|
- [Нельзя использовать в одном состоянии один модуль несколько раз!](#нельзя-использовать-в-одном-состоянии-один-модуль-несколько-раз)
|
||||||
|
- [Порядок исполнения](#порядок-исполнения)
|
||||||
- [Источники](#источники)
|
- [Источники](#источники)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
@ -120,6 +124,33 @@ systemctl enable --now salt-minion
|
||||||
|
|
||||||
[вверх](#краткое-руководство-по-salt-stack)
|
[вверх](#краткое-руководство-по-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
|
## Настройка master
|
||||||
|
|
||||||
Описание возможных директив конфигурационного файла приводится в файле `/etc/salt/master` или в документации <https://docs.saltproject.io/en/latest/ref/configuration/master.html>
|
Описание возможных директив конфигурационного файла приводится в файле `/etc/salt/master` или в документации <https://docs.saltproject.io/en/latest/ref/configuration/master.html>
|
||||||
|
@ -524,6 +555,134 @@ common_pkgs_installed:
|
||||||
|
|
||||||
[вверх](#краткое-руководство-по-salt-stack)
|
[вверх](#краткое-руководство-по-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>
|
<https://www.youtube.com/watch?v=6zY41M2anrY></br>
|
||||||
|
|
Loading…
Reference in New Issue