FreeBSD virtual environment management and repository

2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !

Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Работа с CBSD через Puppet

Когда вы эксплуатируете большое количество нод и контейнеров, ручная работа по управлению контейнерами становится малоэффективна.

Существует огромное количество популярных сегодня систем управлениями конфигурации: Ansible, Chef, Saltstack, Puppet и тд, написанные на разных языках и имеющие разные концепции и принципы работы.

На данный момент мы поддерживаем модуль CBSD для Puppet и здесь дана краткая информация по его использованию.

Страница проекта на Puppet Forge: CBSD puppet

Описание - для чего этот модуль

Puppet CBSD

модуль позволят писать конфигурации серверов, используя декларативное программирование (Ruby DSL, domain-specific language).

Другими словами, вы создаете манифест с описанием, какие контейнера и с какими параметрами и характеристиками должны быть на том или ином сервере.

Дальнейшую работу по выполнению этих требований Puppet берет на себя.

Примеры использования модуля

Для установки CBSD на сервер, достаточно объявить класс cbsd:

                class { 'cbsd': }
        

Если вы устанавливаете CBSD вручную (например не через pkg/порты, а имеете Git версию, вы можете запретить модулю устанавливать модуль самостоятельно:

        class { 'cbsd':
                manage_repo => false,
        }
        

В классе могут быть определены все параметры initenv. Например, для инициализации CBSD с рабочим каталогом /usr/jails и включенным функционалом NAT:

        class { 'cbsd':
                jnameserver => "8.8.8.8",
                nat_enable => '1',
                defaults => {
                        'workdir'         => '/usr/jails',
                }
        }
        

Вы можете заставить CBSD заранее скачать те или иные версии базы:

        class { "cbsd::freebsd_bases":
                ver => [ '12' ],
                stable => 1,
        }
        

Cоздания jail:

        cbsd::jail { 'myjail0':
                pkg_bootstrap => '0',
                host_hostname => 'myjail0.my.domain',
        }
        

Если вы предпочитаете работать с параметрами через Yaml, в Hierra это может выглядеть так:

        cbsd::jails:
          myjail0:
            host_hostname: 'myjail0.my.domain'