Katello Foreman на OEL7: Difference between revisions
No edit summary |
|||
(15 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
В данной статье описывается установка и начальные настройки сервера управления пакетами Katello на базе OEL7. Сервис "Katello" включает в себя управление конфигурациями | В данной статье описывается установка и начальные настройки сервера управления пакетами Katello на базе OEL7. Сервис "Katello" включает в себя управление конфигурациями "puppet", обнаружение и развертывание узлов "foreman", управление репозиториями "pulp", управление жизненным циклом "katello" и управление подписками "candlepin". Полную статью можно прочитать по следующей ссылке "http://wiki.habital.lv/images/Katello_foreman_oel7.pdf". | ||
== Инсталляция “Katello Foreman” на сервер OEL 7 == | |||
3 сентября 2019 г. | |||
'''Создание сервера''' | |||
* Операционная система - OEL 7[[#fn1x0|1]]. | |||
* Необходимое требование к монтированию каталога “/tmp” - не должно быть опции “noexec”. | |||
=== Firewall === | |||
Необходимо, чтобы были открыты следующие порты: | |||
{| style="border-spacing:0;width:4.7396in;" | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
| align=center| Порт | |||
| align=center| Протокол | |||
| align=center| Назначение | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
| align=center| 80 | |||
| align=center| TCP | |||
| align=center| HTTP, used for provisioning purposes | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
| align=center| 443 | |||
| align=center| TCP | |||
| align=center| HTTPS, used for web access and api communication | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
| align=center| 5647 | |||
| align=center| TCP | |||
| align=center| qdrouterd - used for client and Smart Proxy actions | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
| align=center| 8140 | |||
| align=center| TCP | |||
| align=center| Puppet agent to Puppet master connections | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
| align=center| 9090 | |||
| align=center| TCP | |||
| align=center| HTTPS - used for communication | |||
|- | |||
|| | |||
|| | |||
| align=center| with the Smart Proxy | |||
|- | |||
|| | |||
|| | |||
|| | |||
|- | |||
|| | |||
| colspan="2" | | |||
|- | |||
|} | |||
Таблица 1: Открытые порты для “Katello” | |||
Открытие портов: | |||
<nowiki>#</nowiki> firewall-cmd --get-active-zones public | |||
<nowiki>#</nowiki> firewall-cmd \ | |||
--zone=public \ | |||
--add-port="53/udp" --add-port="53/tcp" \ | |||
--add-port="67/udp" --add-port="69/udp" \ | |||
--add-port="80/tcp" --add-port="443/tcp" \ | |||
--add-port="5000/tcp" --add-port="5647/tcp" \ | |||
--add-port="8000/tcp" --add-port="8140/tcp" \ | |||
--add-port="8443/tcp" --add-port="9090/tcp" \ | |||
--permanent | |||
<nowiki>#</nowiki> firewall-cmd --reload | |||
=== Инсталляция пакетов === | |||
В состав дистрибутива “OEL 7” не входит пакет “subscribe-manager”, который надо устанавливать отдельно: | |||
<nowiki>#</nowiki> wget https://copr.fedoraproject.org/coprs/dgoodwin/subscription-manager/repo/epel-7/dgoodwin-subscription-manager-epel-7.repo -O /etc/yum.repos.d/dgoodwin-subscription-manager-epel-7.repo | |||
Кроме того, если установлены следующие пакеты: | |||
* rhn-check | |||
* rhn-client-tools | |||
* rhn-setup | |||
* rhn-setup-gnome | |||
* rhnlib | |||
* rhnsd | |||
* yum-rhn-plugin | |||
то их надо удалить. | |||
==== Установка необходимых репозиториев. ==== | |||
<nowiki>#</nowiki> yum -y localinstall https://fedorapeople.org/groups/katello/releases/yum/3.12/katello/el7/x86_64/katello-repos-latest.rpm | |||
<nowiki>#</nowiki> yum -y localinstall https://yum.theforeman.org/releases/1.22/el7/x86_64/foreman-release.rpm | |||
<nowiki>#</nowiki> yum -y localinstall https://yum.puppet.com/puppet6-release-el-7.noarch.rpm | |||
<nowiki>#</nowiki> yum -y localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm | |||
=== Инсталляция “Katello” === | |||
Внимание: перед установкой необходимо обратить внимание на воможность установки с дополнительными флагами. | |||
<nowiki>#</nowiki> yum -y install foreman-release-scl | |||
<nowiki>#</nowiki> yum -y install katello | |||
<nowiki>#</nowiki> foreman-installer --scenario katello \ | |||
--foreman-initial-organization="Example" \ | |||
--foreman-initial-location="Latvia" \ | |||
--foreman-initial-admin-username=admin \ | |||
--foreman-initial-admin-password="Passw0rd" | |||
Installing Done [100%] Success! | |||
<nowiki>*</nowiki> Katello is running at https://foreman.bank.baltikums.com | |||
<nowiki>*</nowiki> To install an additional Foreman proxy on separate machine continue by running: | |||
foreman-proxy-certs-generate --foreman-proxy-fqdn "$FOREMAN_PROXY" --certs-tar "/root/$FOREMAN_PROXY-certs.tar" | |||
The full log is at /var/log/foreman-installer/katello.log yum install -y -q rh-mongodb34-syspaths finished successfully! | |||
==== Смена пароля ==== | |||
При необходимости можно сменить административный пароль: | |||
<nowiki>#</nowiki> foreman-rake permissions:reset | |||
/usr/share/foreman/lib/foreman.rb:8: warning: already initialized constant Foreman::UUID_REGEXP | |||
/usr/share/foreman/lib/foreman.rb:8: warning: previous definition of UUID_REGEXP was here | |||
Reset to user: admin, password: HfWLyceWA5bdRon3 | |||
Если была произведена смена пароля, то в файле “/root/.hammer/cli.modules.d/foreman.yml” также необходимо изменить пароль. | |||
==== Добавление доменов ==== | |||
<nowiki>#</nowiki> hammer domain create --name habital.lv | |||
==== Добавление подсетей ==== | |||
<nowiki>#</nowiki> hammer domain list | |||
---|------------------- | |||
ID | NAME | |||
---|------------------- | |||
1 | habital.lv | |||
---|------------------- | |||
<nowiki>#</nowiki> hammer subnet create \ | |||
--organizations "Example" \ | |||
--locations "Latvia" \ | |||
--name "VirtualBox Net" \ | |||
--network "10.0.3.0" \ | |||
--mask "255.255.255.0" \ | |||
--network-type "IPv4" \ | |||
--domain-ids "1" | |||
==== Добавление продуктов ==== | |||
===== Создание нового продукта ===== | |||
<nowiki>#</nowiki> hammer organization list | |||
<nowiki>#</nowiki> hammer product create \ | |||
--name=’Extra Packages for Enterprise Linux’ \ | |||
--organization-id 1 \ | |||
--description ’Extra Packages for Enterprise Linux’ | |||
===== Добавление GPG-ключей ===== | |||
<nowiki>#</nowiki> hammer organization list | |||
<nowiki>#</nowiki> wget -q https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7 -O ~/RPM-GPG-KEY-EPEL-7 | |||
<nowiki>#</nowiki> hammer gpg create \ | |||
--key ~/RPM-GPG-KEY-EPEL-7 \ | |||
--name ’GPG EPEL 7’ \ | |||
--organization-id 1 | |||
[[File:Katello foreman content cred.png]] | |||
Рис. 1: Content Credentials | |||
===== Добавление EPEL 7-репозитория ===== | |||
<nowiki>#</nowiki> hammer organization list | |||
<nowiki>#</nowiki> hammer gpg list --organization-id 1 | |||
<nowiki>#</nowiki> hammer repository create \ | |||
--name=’EPEL 7 - x86_64’ \ | |||
--organization-id 1 \ | |||
--product=’Extra Packages for Enterprise Linux’ \ | |||
--content-type=’yum’ \ | |||
--download-policy "on_demand" \ | |||
--publish-via-http=true \ | |||
--url=https://dl.fedoraproject.org/pub/epel/7/x86_64/ \ | |||
--gpg-key="GPG EPEL 7" | |||
Кроме этого надо добавить ключи, репозитории для продуктов “Oracle Enterprise Linux 7”, “Puppet Client for RHEL/CentOS 7”. | |||
[[File:Katello foreman products.png]] | |||
Рис. 2: Продукты Katello | |||
===== Синхронизация репозиториев ===== | |||
После создания нескольких репозиториев их необходимо синхронизировать: | |||
<nowiki>#</nowiki> hammer repository list | |||
... | |||
1 | EPEL 7 - x86_64 | EPEL 7 - x86_64 | |||
6 | OL7_Addons | Oracle Enterprise Linux 7 | |||
3 | OL7_Latest | Oracle Enterprise Linux 7 | |||
5 | OL7_Optional_Latest | Oracle Enterprise Linux 7 | |||
4 | OL7_UEKR5 | Oracle Enterprise Linux 7 | |||
2 | puppet_pc1_x86_64 | Puppet Client for RHEL/CentOS 7 ... | |||
<nowiki>#</nowiki> hammer product list --organization-id 1 | |||
... | |||
1 | EPEL 7 - x86_64 | Extra Packages for Enterprise Linux | |||
4 | Oracle Enterprise Linux 7 | Oracle Enterprise Linux 7 | |||
2 | Puppet Client for RHEL/CentOS 7 | Puppet client repository to use with RHEL ?CentOS 7 | |||
... | |||
<nowiki>#</nowiki> for i in $(seq 3 6); do \ | |||
hammer repository synchronize \ | |||
--product "Oracle Enterprise Linux 7" \ | |||
--id "$i"; \ | |||
done | |||
Синхронизацию можно осуществить также и через WEB-UI. | |||
==== Livecycle ==== | |||
Создание: | |||
<nowiki>#</nowiki> hammer lifecycle-environment create \ | |||
--name "Production" \ | |||
--description "Production" \ | |||
--prior "Library" --organization-id 1 | |||
==== Content View ==== | |||
<nowiki>#</nowiki> hammer content-view create \ | |||
--name "OEL7_content" \ | |||
--description "Content view for OEL7" \ | |||
--organization-id 1 | |||
===== Публикование “Content View” ===== | |||
<nowiki>#</nowiki> hammer content-view publish \ | |||
--name "OEL7_content" \ | |||
--description "Publishing repositories" | |||
[[File:Katello foreman content view.png]] | |||
Рис. 3: Content Views | |||
==== Создание ключей активации ==== | |||
<nowiki>#</nowiki> hammer activation-key list --organization-id 1 | |||
---|------|------------|-----------------------| | |||
ID | NAME | HOST LIMIT | LIFECYCLE ENVIRONMENT | CONTENT VIEW | |||
---|------|------------|-----------------------| | |||
<nowiki>#</nowiki> hammer lifecycle-environment list | |||
---|-------------|------------ | |||
ID | NAME | PRIOR | |||
---|-------------|------------ | |||
1 | Library | | |||
2 | Production | Library | |||
---|-------------|------------ | |||
<nowiki>#</nowiki> hammer content-view version list | |||
... | |||
2 | OEL7_content 1.0 | 1.0 | Library,Production | |||
1 | Default Organization View 1.0 | 1.0 | Library | |||
... | |||
Создадим ключ активации для “Content View - OEL7_content”: | |||
<nowiki>#</nowiki> hammer activation-key create \ | |||
--name "OEL7-key" \ | |||
--description "Key to use with OEL7" \ | |||
--lifecycle-environment "Library" \ | |||
--content-view "OEL7_content" \ | |||
--unlimited-hosts \ | |||
--organization-id 1 | |||
Activation key created. | |||
Все подписки можно увидеть через WEB-UI: | |||
[[File:Katello foreman subscripion.png]] | |||
Рис. 4: Subscriptions | |||
=== Регистрация клиента на “Katello”-сервере === | |||
На стороне клиента надо проверить, что установлен “subscription-manager”: | |||
<nowiki>#</nowiki> yum install subscription-manager | |||
А также: | |||
<nowiki>#</nowiki> yum install -y https://yum.theforeman.org/client/1.22/el7/x86_64/foreman-client-release.rpm | |||
<nowiki>#</nowiki> curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://foreman.habital.lv/pub/katello-ca-consumer-latest.noarch.rpm | |||
<nowiki>#</nowiki> yum localinstall katello-ca-consumer-latest.noarch.rpm | |||
<nowiki>#</nowiki> yum install katello-agent | |||
[[File:Katello foreman host registration.png]] | |||
Рис. 5: Katello Content Host Registration | |||
Если используется виртуализация на основе “VmWare”, “Hyper-V”, “Xen”, “VDSM” или “RHEVM”, то надо установить на гостевые узлы пакет “virt-who” и его настроить (см. [https://access.redhat.com/labsinfo/virtwhoconfig https://access.redhat.com/labsinfo/virtwhoconfig]). В связи с тем, что система “Katello” устанавливалась на VirtualBox, настройка пакета “virt-who” не проводилась. | |||
После успешной регистрации “Katello”-сервера и гостевых узлов эти узлы можно сразу увидеть в “Content Hosts”: | |||
[[File:Katello foreman content hosts.png]] | |||
Рис. 6: Content Hosts | |||
=== Модули для “Puppetserver” === | |||
На сайте [https://forge.puppet.com/ https://forge.puppet.com/] можно найти готовые модули для puppetserver. | |||
==== Модуль “ntp” ==== | |||
Для проверки работы модулей можно с вышеуказанного сайта выбрать модуль ‘ntp” и инсталлировать его: | |||
<nowiki>#</nowiki> puppet module install puppetlabs-ntp --version 8.0.0 | |||
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules | |||
... | |||
Notice: Downloading from https://forgeapi.puppet.com | |||
... | |||
Notice: Installing -- do not interrupt | |||
... | |||
/etc/puppetlabs/code/environments/production/modules | |||
|-- puppetlabs-ntp (v8.0.0) | |||
|-- puppetlabs-stdlib (v6.0.0) | |||
Изменим содержимое файла “site.pp” на следующее: | |||
class { ’ntp’: | |||
| |||
servers <nowiki>=></nowiki> [ ’0.pool.ntp,org’, ’1.pool.ntp.org’ ], | |||
restrict <nowiki>=></nowiki> [ ’default ignore’, | |||
’-6 default ignore’, | |||
’127.0.0.1’, | |||
’-6 ::1’, | |||
], | |||
} | |||
| |||
include ntp | |||
и на хосте с “puppet-агентом” принудительно перечитаем “pp-файл”: | |||
<nowiki>#</nowiki> puppet agent -t После добавления модуля следует перечитать содержимое (рис.7, 8): | |||
[[File:Katello foreman puppet envs.png]] | |||
Рис. 7: Puppet environments | |||
[[File:Katello foreman puppet envs update.png]] | |||
Рис. 8: Puppet change | |||
==== Удаление модуля ==== | |||
Для начала надо проверить список установленных модулей: | |||
<nowiki>#</nowiki> puppet module list /etc/puppetlabs/code/environments/production/modules |--- puppetlabs-apache (v5.0.0) |--- puppetlabs-concat (v6.1.0) | |||
|--- puppetlabs-ntp (v8.0.0) | |||
|--- puppetlabs-stdlib (v6.0.0) | |||
|--- puppetlabs-translate (v2.0.0) | |||
/etc/puppetlabs/code/environments/common (no modules installed) | |||
/etc/puppetlabs/code/modules (no modules installed) | |||
/opt/puppetlabs/puppet/modules (no modules installed) | |||
/usr/share/puppet/modules (no modules installed) | |||
<nowiki>#</nowiki> puppet module uninstall puppetlabs-ntp Notice: Preparing to uninstall ’puppetlabs-ntp’ ... Removed ’puppetlabs-ntp’ (v8.0.0) from /etc/puppetlabs/code/environments/production/modules | |||
=== Установка плагина “Remote Execution” === | |||
Для возможности удалённого выполнения команд надо добавить плагин “Remote Execution”. Он может устанавливаться как при исходной инсталляции, так и после. | |||
<nowiki>#</nowiki> foreman-installer \ | |||
--enable-foreman-plugin-remote-execution \ | |||
--enable-foreman-proxy-plugin-remote-execution-ssh | |||
Preparing installation Done | |||
| |||
Success! | |||
<nowiki>*</nowiki> Katello is running at https://foreman.habital.lv | |||
<nowiki>*</nowiki> To install an additional Foreman proxy on separate machine continue by running: | |||
foreman-proxy-certs-generate --foreman-proxy-fqdn "$FOREMAN_PROXY" --certs-tar "/root/$FOREMAN_PROXY-certs.tar" | |||
The full log is at /var/log/foreman-installer/katello.log | |||
==== Настройка ключей SSH ==== | |||
На сервере надо создать пару ключей “SSH”: | |||
<nowiki>#</nowiki> cd /usr/share/foreman-proxy/.ssh | |||
<nowiki>#</nowiki> sudo -u foreman-proxy ssh-keygen \ | |||
-f ~foreman-proxy/.ssh/id_rsa_foreman_proxy -N ’’ | |||
При наличии уже имеющихся ключей их надо будт обновить. В случае, если включен “SELinux”, надо выполнить команду: | |||
<nowiki>#</nowiki> restorecon -RvF ~foreman-proxy/.ssh | |||
После чего выполнить рестарт “httpd”, “foreman-tasks” и “foreman-proxy”, а также скопировать публичный ключ на удалённые хосты: | |||
<nowiki>#</nowiki> ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub \ root@remotehost.habital.lv | |||
Затем следует проверить на “Katello”-сервере в WEB-UI, что добавлены “Dynflow” и “SSH”: | |||
[[File:Katello foreman smartproxies.png]] | |||
Рис. 9: SmartProxies | |||
[[#fn1x0-bk|1 ]]Для пробы системы “Katello” использовалась виртуализация VirtualBox. Под систему было выделено 12ГБ ОЗУ и 2 виртуальных процессора. |
Latest revision as of 17:20, 12 September 2019
В данной статье описывается установка и начальные настройки сервера управления пакетами Katello на базе OEL7. Сервис "Katello" включает в себя управление конфигурациями "puppet", обнаружение и развертывание узлов "foreman", управление репозиториями "pulp", управление жизненным циклом "katello" и управление подписками "candlepin". Полную статью можно прочитать по следующей ссылке "http://wiki.habital.lv/images/Katello_foreman_oel7.pdf".
Инсталляция “Katello Foreman” на сервер OEL 7
3 сентября 2019 г.
Создание сервера
- Операционная система - OEL 71.
- Необходимое требование к монтированию каталога “/tmp” - не должно быть опции “noexec”.
Firewall
Необходимо, чтобы были открыты следующие порты:
Порт | Протокол | Назначение |
80 | TCP | HTTP, used for provisioning purposes |
443 | TCP | HTTPS, used for web access and api communication |
5647 | TCP | qdrouterd - used for client and Smart Proxy actions |
8140 | TCP | Puppet agent to Puppet master connections |
9090 | TCP | HTTPS - used for communication |
with the Smart Proxy | ||
Таблица 1: Открытые порты для “Katello”
Открытие портов:
# firewall-cmd --get-active-zones public # firewall-cmd \ --zone=public \ --add-port="53/udp" --add-port="53/tcp" \ --add-port="67/udp" --add-port="69/udp" \ --add-port="80/tcp" --add-port="443/tcp" \ --add-port="5000/tcp" --add-port="5647/tcp" \ --add-port="8000/tcp" --add-port="8140/tcp" \ --add-port="8443/tcp" --add-port="9090/tcp" \ --permanent # firewall-cmd --reload
Инсталляция пакетов
В состав дистрибутива “OEL 7” не входит пакет “subscribe-manager”, который надо устанавливать отдельно:
# wget https://copr.fedoraproject.org/coprs/dgoodwin/subscription-manager/repo/epel-7/dgoodwin-subscription-manager-epel-7.repo -O /etc/yum.repos.d/dgoodwin-subscription-manager-epel-7.repo
Кроме того, если установлены следующие пакеты:
- rhn-check
- rhn-client-tools
- rhn-setup
- rhn-setup-gnome
- rhnlib
- rhnsd
- yum-rhn-plugin
то их надо удалить.
Установка необходимых репозиториев.
# yum -y localinstall https://fedorapeople.org/groups/katello/releases/yum/3.12/katello/el7/x86_64/katello-repos-latest.rpm # yum -y localinstall https://yum.theforeman.org/releases/1.22/el7/x86_64/foreman-release.rpm # yum -y localinstall https://yum.puppet.com/puppet6-release-el-7.noarch.rpm # yum -y localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Инсталляция “Katello”
Внимание: перед установкой необходимо обратить внимание на воможность установки с дополнительными флагами.
# yum -y install foreman-release-scl # yum -y install katello # foreman-installer --scenario katello \ --foreman-initial-organization="Example" \ --foreman-initial-location="Latvia" \ --foreman-initial-admin-username=admin \ --foreman-initial-admin-password="Passw0rd" Installing Done [100%] Success! * Katello is running at https://foreman.bank.baltikums.com * To install an additional Foreman proxy on separate machine continue by running: foreman-proxy-certs-generate --foreman-proxy-fqdn "$FOREMAN_PROXY" --certs-tar "/root/$FOREMAN_PROXY-certs.tar" The full log is at /var/log/foreman-installer/katello.log yum install -y -q rh-mongodb34-syspaths finished successfully!
Смена пароля
При необходимости можно сменить административный пароль:
# foreman-rake permissions:reset /usr/share/foreman/lib/foreman.rb:8: warning: already initialized constant Foreman::UUID_REGEXP /usr/share/foreman/lib/foreman.rb:8: warning: previous definition of UUID_REGEXP was here Reset to user: admin, password: HfWLyceWA5bdRon3
Если была произведена смена пароля, то в файле “/root/.hammer/cli.modules.d/foreman.yml” также необходимо изменить пароль.
Добавление доменов
# hammer domain create --name habital.lv
Добавление подсетей
# hammer domain list ---|------------------- ID | NAME ---|------------------- 1 | habital.lv ---|------------------- # hammer subnet create \ --organizations "Example" \ --locations "Latvia" \ --name "VirtualBox Net" \ --network "10.0.3.0" \ --mask "255.255.255.0" \ --network-type "IPv4" \ --domain-ids "1"
Добавление продуктов
Создание нового продукта
# hammer organization list # hammer product create \ --name=’Extra Packages for Enterprise Linux’ \ --organization-id 1 \ --description ’Extra Packages for Enterprise Linux’
Добавление GPG-ключей
# hammer organization list # wget -q https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7 -O ~/RPM-GPG-KEY-EPEL-7 # hammer gpg create \ --key ~/RPM-GPG-KEY-EPEL-7 \ --name ’GPG EPEL 7’ \ --organization-id 1
Рис. 1: Content Credentials
Добавление EPEL 7-репозитория
# hammer organization list # hammer gpg list --organization-id 1 # hammer repository create \ --name=’EPEL 7 - x86_64’ \ --organization-id 1 \ --product=’Extra Packages for Enterprise Linux’ \ --content-type=’yum’ \ --download-policy "on_demand" \ --publish-via-http=true \ --url=https://dl.fedoraproject.org/pub/epel/7/x86_64/ \ --gpg-key="GPG EPEL 7"
Кроме этого надо добавить ключи, репозитории для продуктов “Oracle Enterprise Linux 7”, “Puppet Client for RHEL/CentOS 7”.
Рис. 2: Продукты Katello
Синхронизация репозиториев
После создания нескольких репозиториев их необходимо синхронизировать:
# hammer repository list ... 1 | EPEL 7 - x86_64 | EPEL 7 - x86_64 6 | OL7_Addons | Oracle Enterprise Linux 7 3 | OL7_Latest | Oracle Enterprise Linux 7 5 | OL7_Optional_Latest | Oracle Enterprise Linux 7 4 | OL7_UEKR5 | Oracle Enterprise Linux 7 2 | puppet_pc1_x86_64 | Puppet Client for RHEL/CentOS 7 ... # hammer product list --organization-id 1 ... 1 | EPEL 7 - x86_64 | Extra Packages for Enterprise Linux 4 | Oracle Enterprise Linux 7 | Oracle Enterprise Linux 7 2 | Puppet Client for RHEL/CentOS 7 | Puppet client repository to use with RHEL ?CentOS 7 ... # for i in $(seq 3 6); do \ hammer repository synchronize \ --product "Oracle Enterprise Linux 7" \ --id "$i"; \ done
Синхронизацию можно осуществить также и через WEB-UI.
Livecycle
Создание:
# hammer lifecycle-environment create \ --name "Production" \ --description "Production" \ --prior "Library" --organization-id 1
Content View
# hammer content-view create \ --name "OEL7_content" \ --description "Content view for OEL7" \ --organization-id 1
Публикование “Content View”
# hammer content-view publish \ --name "OEL7_content" \ --description "Publishing repositories"
Рис. 3: Content Views
Создание ключей активации
# hammer activation-key list --organization-id 1 ---|------|------------|-----------------------| ID | NAME | HOST LIMIT | LIFECYCLE ENVIRONMENT | CONTENT VIEW ---|------|------------|-----------------------| # hammer lifecycle-environment list ---|-------------|------------ ID | NAME | PRIOR ---|-------------|------------ 1 | Library | 2 | Production | Library ---|-------------|------------ # hammer content-view version list ... 2 | OEL7_content 1.0 | 1.0 | Library,Production 1 | Default Organization View 1.0 | 1.0 | Library ...
Создадим ключ активации для “Content View - OEL7_content”:
# hammer activation-key create \ --name "OEL7-key" \ --description "Key to use with OEL7" \ --lifecycle-environment "Library" \ --content-view "OEL7_content" \ --unlimited-hosts \ --organization-id 1 Activation key created.
Все подписки можно увидеть через WEB-UI:
Рис. 4: Subscriptions
Регистрация клиента на “Katello”-сервере
На стороне клиента надо проверить, что установлен “subscription-manager”:
# yum install subscription-manager
А также:
# yum install -y https://yum.theforeman.org/client/1.22/el7/x86_64/foreman-client-release.rpm # curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://foreman.habital.lv/pub/katello-ca-consumer-latest.noarch.rpm # yum localinstall katello-ca-consumer-latest.noarch.rpm # yum install katello-agent
Рис. 5: Katello Content Host Registration
Если используется виртуализация на основе “VmWare”, “Hyper-V”, “Xen”, “VDSM” или “RHEVM”, то надо установить на гостевые узлы пакет “virt-who” и его настроить (см. https://access.redhat.com/labsinfo/virtwhoconfig). В связи с тем, что система “Katello” устанавливалась на VirtualBox, настройка пакета “virt-who” не проводилась.
После успешной регистрации “Katello”-сервера и гостевых узлов эти узлы можно сразу увидеть в “Content Hosts”:
Рис. 6: Content Hosts
Модули для “Puppetserver”
На сайте https://forge.puppet.com/ можно найти готовые модули для puppetserver.
Модуль “ntp”
Для проверки работы модулей можно с вышеуказанного сайта выбрать модуль ‘ntp” и инсталлировать его:
# puppet module install puppetlabs-ntp --version 8.0.0 Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ... Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/production/modules |-- puppetlabs-ntp (v8.0.0) |-- puppetlabs-stdlib (v6.0.0)
Изменим содержимое файла “site.pp” на следующее:
class { ’ntp’: servers => [ ’0.pool.ntp,org’, ’1.pool.ntp.org’ ], restrict => [ ’default ignore’, ’-6 default ignore’, ’127.0.0.1’, ’-6 ::1’, ], } include ntp
и на хосте с “puppet-агентом” принудительно перечитаем “pp-файл”:
# puppet agent -t После добавления модуля следует перечитать содержимое (рис.7, 8):
Рис. 7: Puppet environments
Рис. 8: Puppet change
Удаление модуля
Для начала надо проверить список установленных модулей:
# puppet module list /etc/puppetlabs/code/environments/production/modules |--- puppetlabs-apache (v5.0.0) |--- puppetlabs-concat (v6.1.0) |--- puppetlabs-ntp (v8.0.0) |--- puppetlabs-stdlib (v6.0.0) |--- puppetlabs-translate (v2.0.0) /etc/puppetlabs/code/environments/common (no modules installed) /etc/puppetlabs/code/modules (no modules installed) /opt/puppetlabs/puppet/modules (no modules installed) /usr/share/puppet/modules (no modules installed) # puppet module uninstall puppetlabs-ntp Notice: Preparing to uninstall ’puppetlabs-ntp’ ... Removed ’puppetlabs-ntp’ (v8.0.0) from /etc/puppetlabs/code/environments/production/modules
Установка плагина “Remote Execution”
Для возможности удалённого выполнения команд надо добавить плагин “Remote Execution”. Он может устанавливаться как при исходной инсталляции, так и после.
# foreman-installer \ --enable-foreman-plugin-remote-execution \ --enable-foreman-proxy-plugin-remote-execution-ssh Preparing installation Done Success! * Katello is running at https://foreman.habital.lv * To install an additional Foreman proxy on separate machine continue by running: foreman-proxy-certs-generate --foreman-proxy-fqdn "$FOREMAN_PROXY" --certs-tar "/root/$FOREMAN_PROXY-certs.tar" The full log is at /var/log/foreman-installer/katello.log
Настройка ключей SSH
На сервере надо создать пару ключей “SSH”:
# cd /usr/share/foreman-proxy/.ssh # sudo -u foreman-proxy ssh-keygen \ -f ~foreman-proxy/.ssh/id_rsa_foreman_proxy -N ’’
При наличии уже имеющихся ключей их надо будт обновить. В случае, если включен “SELinux”, надо выполнить команду:
# restorecon -RvF ~foreman-proxy/.ssh
После чего выполнить рестарт “httpd”, “foreman-tasks” и “foreman-proxy”, а также скопировать публичный ключ на удалённые хосты:
# ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub \ root@remotehost.habital.lv
Затем следует проверить на “Katello”-сервере в WEB-UI, что добавлены “Dynflow” и “SSH”:
Рис. 9: SmartProxies
1 Для пробы системы “Katello” использовалась виртуализация VirtualBox. Под систему было выделено 12ГБ ОЗУ и 2 виртуальных процессора.