Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

10.2.3. Соляні стани та інші особливості‌


Хоча віддалене виконання є важливим будівельним блоком, це лише невелика частка того, що може зробити SaltStack.

Налаштовуючи нову машину, ви часто виконуєте безліч команд і тестів, щоб визначити деталі системи перед встановленням. Ці операції можна формалізувати у повторно використовувані шаблони конфігурації, які називаються файли стану. Операції, описані у файлах стану, можна виконувати за допомогою одного стан.застосувати команда солі.

Щоб заощадити час, ви можете покладатися на багато готових до використання файлів стану, які були створені спільнотою і які розповсюджуються в «Формулах солі»:

https://docs.saltstack.com/en/latest/topics/development/conventions/formulas. html

Є багато інших функцій, які можна комбінувати:

• Планове виконання дій

• Визначення дій у відповідь на події, ініційовані міньйонами

• Збір даних з міньйонів

• Організація послідовності операцій між кількома прислужниками

• Застосування станів через SSH без встановлення служби salt-minion

• Надання систем на хмарних інфраструктурах та передача їх під управління

• І більше

SaltStack досить великий, і ми не можемо охопити всі функції тут. Насправді є книги, повністю присвячені SaltStack, і онлайн-документація також дуже обширна. Перегляньте його, якщо ви хочете дізнатися більше про його функції:

https://docs.saltstack.com/en/latest/

Якщо ви керуєте значною кількістю машин, вам буде корисно дізнатися більше про SaltStack, оскільки ви можете заощадити значну кількість часу під час розгортання нових машин і зможете підтримувати узгоджену конфігурацію у вашій мережі.

Щоб надати вам уявлення про те, як виглядає робота з файлами стану, ми розглянемо простий приклад: як увімкнути репозиторій APT та встановити пакет, який ви створюєте в розділі 10.3.3, «Створення репозиторію пакетів для APT». [стор. 269] і розділ 10.3.2, «Створення пакетів конфігурації” [стор. 263]. Ви також зареєструєте ключ SSH в обліковому записі root, щоб ви могли дистанційно входити в систему у разі проблем.

За замовчуванням файли стану зберігаються в /srv/сіль на майстра; це структуровані файли YAML з a .sls розширення. Як і для виконання команд, застосування стану залежить від багатьох модулів стану:

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

https://docs.saltstack.com/en/latest/ref/states/all/

вашу /srv/salt/offsec.sls файл викличе три з цих модулів:


offsec_repository: pkgrepo.managed:

- назва: deb http://pkgrepo.offsec.com offsec-internal main

- файл: /etc/apt/sources.list.d/offsec.list

- URL-адреса ключа: salt://offsec-apt-key.asc

- require_in:

- pkg: offsec-за замовчуванням


offsec-defaults: pkg.installed


ssh_key_for_root: ssh_auth.present:

- користувач: root

- назва: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali

offsec_repository: pkgrepo.managed:

- назва: deb http://pkgrepo.offsec.com offsec-internal main

- файл: /etc/apt/sources.list.d/offsec.list

- URL-адреса ключа: salt://offsec-apt-key.asc

- require_in:

- pkg: offsec-за замовчуванням


offsec-defaults: pkg.installed


ssh_key_for_root: ssh_auth.present:

- користувач: root

- назва: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali


Команда offsec_repository держава спирається на pkgrepo модуль стану. У прикладі використовується вдалося

функція в цьому модулі стану для реєстрації сховища пакетів. З key_url атрибут, ти

нехай сол знає, що ключ GPG (захищений ASCII), необхідний для перевірки підпису репозиторію, можна отримати з /srv/salt/offsec-apt-key.asc на сільмайстера. The require_in атрибут гарантує, що цей стан буде оброблено до offsec-за замовчуванням, оскільки для останнього потрібно правильно налаштувати репозиторій для встановлення пакунка.

Команда offsec-за замовчуванням state встановлює пакет з такою ж назвою. Це показує, що ім’я ключа часто є важливим значенням для станів, хоча його завжди можна замінити за допомогою a ім'я атрибут (як зроблено для колишньої держави). Для таких простих випадків, як цей, це зрозуміло й стисло.

Останній стан (ssh_key_for_root) додає ключ SSH, наведений у файлі ім'я приписувати /root/.ssh/ авторизовані_ключі (цільовий користувач встановлюється в користувач атрибут). Зверніть увагу, що ми скоротили ключ для зручності читання тут, але ви повинні помістити повний ключ в атрибут name.

Далі цей файл стану можна застосувати до даного фаворита:


сервер № сіль kali-подряпина стан.застосувати офсек

kali-scratch:

----------

Ідентифікатор: offsec_repository Функція: pkgrepo.managed

Ім'я: deb http://pkgrepo.offsec.com offsec-internal main Результат: вірно

Коментар: налаштований репо пакету 'deb http://pkgrepo.offsec.com offsec-internal

головний'

Початок: 06:00:15.767794

Тривалість: 4707.35 мс Зміни:

----------

репо:

deb http://pkgrepo.offsec.com offsec-internal main

----------

ID: offsec-defaults Функція: pkg.installed

Результат: правда

Коментар: Встановлено/оновлено такі пакунки: offsec-defaults Початок: 06:00:21.325184

Тривалість: 19246.041 мс Зміни:

----------

offsec-за замовчуванням:

----------

новий:

1.0

старий:

----------

Ідентифікатор: ssh_key_for_root Функція: ssh_auth.present

сервер № сіль kali-подряпина стан.застосувати офсек

kali-scratch:

----------

Ідентифікатор: offsec_repository Функція: pkgrepo.managed

Ім'я: deb http://pkgrepo.offsec.com offsec-internal main Результат: вірно

Коментар: налаштований репо пакету 'deb http://pkgrepo.offsec.com offsec-internal

головний'

Початок: 06:00:15.767794

Тривалість: 4707.35 мс Зміни:

----------

репо:

deb http://pkgrepo.offsec.com offsec-internal main

----------

ID: offsec-defaults Функція: pkg.installed

Результат: правда

Коментар: Встановлено/оновлено такі пакунки: offsec-defaults Початок: 06:00:21.325184

Тривалість: 19246.041 мс Зміни:

----------

offsec-за замовчуванням:

----------

новий:

1.0

старий:

----------

Ідентифікатор: ssh_key_for_root Функція: ssh_auth.present


Ім'я: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Результат: правда

Коментар: Додано авторизований ключ хосту AAAAB3NzaC1yc2...89C4N для користувача root. Початок: 06:00:40.582539

Тривалість: 62.103 мс Зміни:

---------- AAAAB3NzaC1yc2...89C4N:

Нові


Резюме для kali-scratch

------------

Успішно: 3 (змінено=3)

Помилка: 0

------------

Загальна кількість станів: 3

Загальний час роботи: 24.015 с

Ім'я: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Результат: правда

Коментар: Додано авторизований ключ хосту AAAAB3NzaC1yc2...89C4N для користувача root. Початок: 06:00:40.582539

Тривалість: 62.103 мс Зміни:

---------- AAAAB3NzaC1yc2...89C4N:

Нові


Резюме для kali-scratch

------------

Успішно: 3 (змінено=3)

Помилка: 0

------------

Загальна кількість станів: 3

Загальний час роботи: 24.015 с


Його також можна назавжди пов’язати з міньйоном, записавши його в файлі /srv/salt/top.sls

файл, який використовується стан.високий стан команда, щоб застосувати всі відповідні стани за один прохід:


сервер № кішка /srv/salt/top.sls

база:

kali-scratch:

- офсек

сервер № сіль kali-scratch state.highstate

kali-scratch:

----------

Ідентифікатор: offsec_repository Функція: pkgrepo.managed

Ім'я: deb http://pkgrepo.offsec.com offsec-internal main Результат: вірно

Коментар: Репо пакету "deb http://pkgrepo.offsec.com offsec-internal main" вже

налаштовано Розпочато: 06:06:20.650053

Тривалість: 62.805 мс Зміни:

----------

ID: offsec-defaults Функція: pkg.installed

Результат: правда

Коментар: Пакет offsec-defaults вже встановлено. Розпочато: 06:06:21.436193

Тривалість: 385.092 мс Зміни:

----------

Ідентифікатор: ssh_key_for_root

сервер № кішка /srv/salt/top.sls

база:

kali-scratch:

- офсек

сервер № сіль kali-scratch state.highstate

kali-scratch:

----------

Ідентифікатор: offsec_repository Функція: pkgrepo.managed

Ім'я: deb http://pkgrepo.offsec.com offsec-internal main Результат: вірно

Коментар: Репо пакету "deb http://pkgrepo.offsec.com offsec-internal main" вже

налаштовано Розпочато: 06:06:20.650053

Тривалість: 62.805 мс Зміни:

----------

ID: offsec-defaults Функція: pkg.installed

Результат: правда

Коментар: Пакет offsec-defaults вже встановлено. Розпочато: 06:06:21.436193

Тривалість: 385.092 мс Зміни:

----------

Ідентифікатор: ssh_key_for_root


Функція: ssh_auth.present

Ім'я: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Результат: правда

Коментар: авторизований ключ хосту AAAAB3NzaC1yc2...89C4N вже наявний для

кореневої користувач

Початок: 06:06:21.821811

Тривалість: 1.936 мс Зміни:


Резюме для kali-scratch

------------

Вдалось: 3

Помилка: 0

------------

Загальна кількість станів: 3

Загальний час виконання: 449.833 мс

Функція: ssh_auth.present

Ім'я: ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali Результат: правда

Коментар: авторизований ключ хосту AAAAB3NzaC1yc2...89C4N вже наявний для

кореневої користувач

Початок: 06:06:21.821811

Тривалість: 1.936 мс Зміни:


Резюме для kali-scratch

------------

Вдалось: 3

Помилка: 0

------------

Загальна кількість станів: 3

Загальний час виконання: 449.833 мс


Найпопулярніші хмарні обчислення ОС на OnWorks: