Thank you for reading this post, don't forget to subscribe!
Spacewalk, — это Red Hat система, бесплатный аналог Satellite, для централизованного управления конфигурациями, обновлений систем, удобной поддержкой всего серверного парка.
Сервер Spacewalk обслуживает весь жизненный цикл Linux-инфраструктуры и решает следующие задачи:
- Сбор информации о системах (аппаратное обеспечение и установленное ПО)
- Установка и обновление операционных систем
- Установка и обновление программного обеспечения
- Установка систем при помощи kickstart-файлов
- Управление и распространение конфигурационных файлов
- Мониторинг систем
- Установка виртуальных машин
- Запуск/остановка/настройка виртуальных машин
- Работа с географически-распределенной сетью
- Автоматизация задач системного администрирования
- Распределение ролей администраторов и группировка систем
Системные требования
- 4GB RAM
- 6GB свободного места для /var/satellite/
- 12GB для БД
Также советую отключить SELinux и, если не используете, firewalld
[root@spacewalk ~]# cat /etc/selinux/config | grep ^SELINUX
SELINUX=disabled
SELINUXTYPE=targeted
[root@spacewalk ~]# cat /etc/hosts | grep 192.168.1.170
192.168.1.170 spacewalk.test.ru spacewalk
yum install -y epel-release
yum -y install https://copr-be.cloud.fedoraproject.org/results/%40spacewalkproject/spacewalk-2.8/epel-7-x86_64/00736372-spacewalk-repo/spacewalk-repo-2.8-11.el7.centos.noarch.rpm
yum install -y spacewalk-setup-postgresql
yum install -y spacewalk-postgresql
пытаемся заинсталить но у нас не выходит из-за нехватки места:
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@spacewalk ~]# <strong>spacewalk-setup</strong> ** Database: Setting up database connection for PostgreSQL backend. There is not enough space available for the embedded database. Exit value: 1. Please examine /var/log/rhn/rhn_installation.log for more information. [root@spacewalk ~]# <strong>cat /var/log/rhn/rhn_installation.log</strong> Installation log of Spacewalk Command: /usr/bin/spacewalk-setup ERROR: diskspace does not meet minimum system requirements: Mountpoint: /var Relevant paths serviced by mountpoint: /var/lib/pgsql/data Disk space needed: 12884901888 bytes (app. 12.0G) Disk space available: 4068343808 bytes (app. 3.0G) |
[/codesyntax]
расширяем на 10 гигов и запускаем по новой инициализацию:
[codesyntax lang="bash"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
[root@spacewalk ~]# <strong>spacewalk-setup</strong> ** Database: Setting up database connection for PostgreSQL backend. ** Database: Installing the database: ** Database: This is a long process that is logged in: ** Database: /var/log/rhn/install_db.log *** Progress: # ** Database: Installation complete. ** Database: Populating database. *** Progress: ########################## * Configuring tomcat. * Setting up users and groups. ** GPG: Initializing GPG and importing key. You must enter an email address. Admin Email Address? <strong>root-spacewalk@test.ru</strong> * Performing initial configuration. * Configuring apache SSL virtual host. Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]? <strong>y</strong> ** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave * Configuring jabberd. * Creating SSL certificates. <strong>CA certificate password?</strong> <strong>Re-enter CA certificate password?</strong> Cname alias of the machine (comma seperated)? <strong>spacewalk.test.ru</strong> Organization? <strong>HOME</strong> Organization Unit [spacewalk]? <strong>test-HOME</strong> <strong>Email Address [root-spacewalk@test.ru]?</strong> City? <strong>Bishkek</strong> State? <strong>Bishkek</strong> Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? <strong>KG</strong> ** SSL: Generating CA certificate. ** SSL: Deploying CA certificate. ** SSL: Generating server certificate. ** SSL: Storing SSL certificates. * Deploying configuration files. * Update configuration in database. * Setting up Cobbler.. Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]? <strong>y</strong> * Restarting services. Installation complete. Visit https://spacewalk to create the Spacewalk administrator account. |
[/codesyntax]
смотрим статус:
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
[root@spacewalk ~]# <strong>spacewalk-service status</strong> ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:10 +06; 2min 19s ago Process: 3027 ExecStop=/usr/bin/pg_ctl stop -D ${PGDATA} -s -m fast (code=exited, status=0/SUCCESS) Process: 3061 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 3042 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 3072 (postgres) CGroup: /system.slice/postgresql.service ├─3072 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─3083 postgres: logger process ├─3085 postgres: checkpointer process ├─3086 postgres: writer process ├─3087 postgres: wal writer process ├─3088 postgres: autovacuum launcher process ├─3089 postgres: stats collector process ├─3100 postgres: rhnuser rhnschema [local] idle ├─3135 postgres: rhnuser rhnschema 127.0.0.1(37844) idle ├─3136 postgres: rhnuser rhnschema 127.0.0.1(37846) idle ├─3137 postgres: rhnuser rhnschema 127.0.0.1(37848) idle ├─3138 postgres: rhnuser rhnschema 127.0.0.1(37850) idle ├─3139 postgres: rhnuser rhnschema 127.0.0.1(37852) idle ├─3327 postgres: rhnuser rhnschema 127.0.0.1(37862) idle ├─3390 postgres: rhnuser rhnschema 127.0.0.1(37868) idle ├─3392 postgres: rhnuser rhnschema 127.0.0.1(37870) idle ├─3393 postgres: rhnuser rhnschema 127.0.0.1(37872) idle ├─3431 postgres: rhnuser rhnschema 127.0.0.1(37874) idle ├─3432 postgres: rhnuser rhnschema 127.0.0.1(37876) idle ├─3433 postgres: rhnuser rhnschema 127.0.0.1(37878) idle ├─3434 postgres: rhnuser rhnschema 127.0.0.1(37880) idle ├─3435 postgres: rhnuser rhnschema 127.0.0.1(37882) idle ├─3436 postgres: rhnuser rhnschema 127.0.0.1(37884) idle ├─3437 postgres: rhnuser rhnschema 127.0.0.1(37886) idle ├─3438 postgres: rhnuser rhnschema 127.0.0.1(37888) idle ├─3439 postgres: rhnuser rhnschema 127.0.0.1(37890) idle ├─3440 postgres: rhnuser rhnschema 127.0.0.1(37892) idle ├─3441 postgres: rhnuser rhnschema 127.0.0.1(37894) idle ├─3442 postgres: rhnuser rhnschema 127.0.0.1(37896) idle ├─3453 postgres: rhnuser rhnschema 127.0.0.1(37898) idle ├─3454 postgres: rhnuser rhnschema 127.0.0.1(37900) idle ├─3455 postgres: rhnuser rhnschema 127.0.0.1(37902) idle ├─3456 postgres: rhnuser rhnschema 127.0.0.1(37904) idle ├─3457 postgres: rhnuser rhnschema 127.0.0.1(37906) idle └─3497 postgres: rhnuser rhnschema 127.0.0.1(37910) idle ● jabberd.service - Jabber Server Loaded: loaded (/usr/lib/systemd/system/jabberd.service; enabled; vendor preset: disabled) Active: active (exited) since Wed 2020-06-17 17:35:09 +06; 2min 20s ago Process: 3041 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 3041 (code=exited, status=0/SUCCESS) CGroup: /system.slice/jabberd.service ● tomcat.service - Apache Tomcat Web Application Container Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:09 +06; 2min 20s ago Main PID: 3036 (java) CGroup: /system.slice/tomcat.service └─3036 /usr/lib/jvm/jre/bin/java -ea -Xms256m -Xmx256m -Djava.awt.headless=true -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser -Dorg.apache.tomcat.u... ● spacewalk-wait-for-tomcat.service - Spacewalk wait for tomcat Loaded: loaded (/usr/lib/systemd/system/spacewalk-wait-for-tomcat.service; static; vendor preset: disabled) Active: active (exited) since Wed 2020-06-17 17:35:23 +06; 2min 7s ago Process: 3037 ExecStart=/usr/sbin/spacewalk-startup-helper wait-for-tomcat (code=exited, status=0/SUCCESS) Main PID: 3037 (code=exited, status=0/SUCCESS) CGroup: /system.slice/spacewalk-wait-for-tomcat.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:23 +06; 2min 7s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 3231 (httpd) Status: "Total requests: 13; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─3231 /usr/sbin/httpd -DFOREGROUND ├─3232 /usr/sbin/httpd -DFOREGROUND ├─3233 /usr/sbin/httpd -DFOREGROUND ├─3234 /usr/sbin/httpd -DFOREGROUND ├─3235 /usr/sbin/httpd -DFOREGROUND ├─3236 /usr/sbin/httpd -DFOREGROUND ├─3237 /usr/sbin/httpd -DFOREGROUND ├─3238 /usr/sbin/httpd -DFOREGROUND └─3239 /usr/sbin/httpd -DFOREGROUND ● spacewalk-wait-for-jabberd.service - Spacewalk wait for jabberd Loaded: loaded (/usr/lib/systemd/system/spacewalk-wait-for-jabberd.service; static; vendor preset: disabled) Active: active (exited) since Wed 2020-06-17 17:35:10 +06; 2min 20s ago Process: 3048 ExecStart=/usr/sbin/spacewalk-startup-helper wait-for-jabberd (code=exited, status=0/SUCCESS) Main PID: 3048 (code=exited, status=0/SUCCESS) CGroup: /system.slice/spacewalk-wait-for-jabberd.service ● osa-dispatcher.service - OSA Dispatcher daemon Loaded: loaded (/usr/lib/systemd/system/osa-dispatcher.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:10 +06; 2min 20s ago Process: 3097 ExecStart=/usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS) Process: 3096 ExecStartPre=/bin/rm -f /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS) Main PID: 3101 (osa-dispatcher) CGroup: /system.slice/osa-dispatcher.service └─3101 /usr/bin/python -s /usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid ● rhn-search.service - Spacewalk search engine Loaded: loaded (/usr/lib/systemd/system/rhn-search.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:23 +06; 2min 6s ago Process: 3242 ExecStart=/usr/sbin/rhn-search start (code=exited, status=0/SUCCESS) Main PID: 3264 (rhnsearchd) CGroup: /system.slice/rhn-search.service ├─3264 /usr/bin/rhnsearchd /usr/share/rhn/config-defaults/rhn_search_daemon.conf wrapper.pidfile=/var/run/rhn-search.pid wrapper.daemonize=TRUE └─3273 /usr/bin/java -Djava.library.path=/usr/lib:/usr/lib64:/usr/lib/oracle/11.2/client/lib:/usr/lib/oracle/11.2/client64/lib:/usr/lib/gcj/postgresql-jdbc:/u… ● cobblerd.service - Cobbler daemon Loaded: loaded (/usr/lib/systemd/system/cobblerd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:23 +06; 2min 7s ago Main PID: 3240 (cobblerd) CGroup: /system.slice/cobblerd.service └─3240 /usr/bin/python -s /usr/bin/cobblerd --no-daemonize ● taskomatic.service - Taskomatic Loaded: loaded (/usr/lib/systemd/system/taskomatic.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-06-17 17:35:23 +06; 2min 6s ago Process: 3241 ExecStart=/usr/sbin/taskomatic start (code=exited, status=0/SUCCESS) Main PID: 3269 (taskomaticd) CGroup: /system.slice/taskomatic.service ├─3269 /usr/bin/taskomaticd /usr/share/rhn/config-defaults/rhn_taskomatic_daemon.conf wrapper.pidfile=/var/run//taskomatic.pid wrapper.daemonize=TRUE └─3285 /usr/bin/java -Dibm.dst.compatibility=true -Dfile.encoding=UTF-8 -Xms256m -Xmx1024m -Djava.library.path=/usr/lib:/usr/lib64:/usr/lib/oracle/11.2/client… ● spacewalk.target - Spacewalk Loaded: loaded (/usr/lib/systemd/system/spacewalk.target; enabled; vendor preset: disabled) Active: active since Wed 2020-06-17 17:35:23 +06; 2min 6s ago |
[/codesyntax]
Для управления непосредственно приложением, стоит использовать:
1 |
<strong><code class="bash hljs">/usr/sbin/spacewalk-service [stop|start|restart]</code></strong> |
Base & Child Channels, Repos
Для управления клиентскими станциями, Spacewalk использует систему так называемых каналов, которые могут быть как основными (Base), так и дочерними (Child), к каждому каналу привязывается репозиторий, который вам нужен, а так же ключ — с помощью которого происходит сопряжение клиента с сервером.
Репозитории в итоге синхронизируются с каналами, которые, в свою очередь, связаны с клиентами, так и проходит работа Spacewalk в общем виде. Тут же стоит упомянуть errata, которые можно привязать к каналам, что упрощает обновление и контроль за пакетами.
Всех клиентов можно объединять в группы по разным признакам, причем как с одинаковыми, так и с разными каналами или репозиториями, есть возможность работать с большим количеством клиентов на раз, что очень помогает делать обновления на 100+ серверах.
Доступен список всех пакетов установленных, а после синхронизации репозиториев и возможных для установки. Некоторые пункты интуитивно понятно, и нет смысла рассматривать каждый пункт построчно.
Все действия в Spacewalk происходят по расписанию (Schedule), практически любое действие можно настроить на время, которое вам удобнее всего.
После установки, можно будет перейти на адрес вашего сервера, дальнейшую настройку проводим через графический интерфейс:
https://spacewalk.test.ru/
ну для начала добавляем запись в hosts чтоб резолвился наш левый субдомен
заполняем графы:
попадаем на главную страницу:
переходим в:
Каналы -> Управление каналами -> Create Channel
Рекомендую задавать имена каналов в соответствии с типов и видом ОС, которые будут привязаны к этому каналу, например, CentOS_7_x86_64, в качестве чексам смело можно выбирать sha256, поле Channell Summary предназначено для небольшого описания канала. также, можете по желанию указать дополнительную информацию.
Создадим репозиторий для обновлений
Теперь необходимо создать каналы, который будут подключаться к репозиториям.
Теперь подключим созданные каналы.
… и нажимаем кнопку «ОБНОВИТЬ РЕПОЗИТОРИИ».
Далее идем в Синхронизацию
Выставляем план автоматической синхронизации.
Создаем дополнительный репозиторий EPEL
Создаем дополнительный репозиторий ELREPO
Создаем каналы для новых репозиториев
обязательно выбираем родительский канал
Нажимаем «Создать канал» и переходим в репозитории.
и подключаем созданный репозиторий
После переходим в «Синхронизация» и назначаем план запуска.
Аналогичные действия проделываем и для канала ELREPO.
и так же подключаем его
Потом идем в «Синхронизация» и настраиваем план.
Статус синхронизации можно посмотреть в разделе «Синхронизация»
Центрально управляемые каналы конфигурации.
Добавим для централизованого распространения файл host с необходимым содержанием.
Нажимаем создать файл и продолжаем.
Далее переходим к созданию ключей активации конфигураций
После этого посмотрим, что у нас получилось.
Далее идем в «Дочерние каналы»
и указываем какие каналы буду сопоставлены этому ключу.
Дописываем вручную список пакетов
Создадим системную группу
… и подпишем эту групу на ключ…