Spacewalk – Patch Managment Under Control – Parte 1 de 4

Bom noite a todos,

Como certamente estão recordados, fiz a pouco tempo uma apresentação sobre o SOE – Standard Operating Environment – onde referi que uma das regras de ouro no SOE é a homogeneização das plataformas e sistemas de forma a garantir melhor resposta, menor custo e maior qualidade no serviço prestado.
Para se garantir esta homogeneização, existe uma necessidade premente que nem todos as Organizações conseguem responder para a sua infraestrutura: A capacidade de conseguirem fazer patch managment, ou PMI de uma forma simples, rápida, automática e sobretudo segura.

Algumas por falta de capacidade de homem/máquina, outros por causa do risco apresentado ao próprio software que tem em produção no seu equipamento, a não existência de uma plataforma de patch managment, é sentida num aumento da complexidade sempre que é pedido para instalar um pacote de software novo, ou fazer um updade de segurança massivo.

Existem várias soluções no mercado para mitigar esta necessidade:

Em versões pagas e suportadas temos dois players principais: A Red Hat e a SuSE com os seus Satellite e Suse Manager respetivamente.

redhat

suse
Em versões da comunidade temos o Katello (de onde o Satellite é desenvolvido) e o Spacewalk (projeto por detrás do SuSE Manager). Tipicamente estas versões estão menos testadas, mas contem mais features para o administrador de sistemas.

spacewalk
Este post fala precisamente do Spacewalk. Planeio num futuro próximo fazer um semelhante sobre o Katello.

O procedimento de instalação é extremamente simples, podendo inclusive o produto ser instalado num LXC container como foi o meu caso.

Primeiro instalar o repositório do produto:
wget http://yum.spacewalkproject.org/RPM-GPG-KEY-spacewalk-2015 -P /etc/pki/rpm-gpg
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-spacewalk-2015
rpm -Uvh http://yum.spacewalkproject.org/2.5/RHEL/7/x86_64/spacewalk- repo-2.5-3.el7.noarch.rpm

Em seguida instalar o repositório EPEL:
wget https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7 -P /etc/pki/rpm-gpg
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7. noarch.rpm

Instalar o repositório Jpackage:
cat > /etc/yum.repos.d/jpackage-generic.repo << EOF
[jpackage-generic]
name=JPackage (free), generic
mirrorlist= http://www.jpackage.org/mirrorlist.php?dist=generic&type =free&release=5.0
failovermethod=priority
gpgcheck=0
gpgkey=http://www.jpackage.org/jpackage.asc
enabled=1
EOF

Atualizar o sistema:
yum update -y

Instalar o postgres que irá servir de backend DB para o Spacewalk:
yum install spacewalk-setup-postgresql -y

Instalar o spacewalk com backend de postgresql:
yum install spacewalk-postgresql -y

Criar ficheiro de configuração automática:

cat > /root/spacewalk-answer-file << EOF
admin-email = [email protected]
ssl-set-org = nuneshiggs.com
ssl-set-org-unit = spacewalk
ssl-set-city = SDRana
ssl-set-state = Cascais
ssl-set-country = PT
ssl-password = spacewalk
ssl-set-email = [email protected]
ssl-config-sslvhost = Y
db-backend=postgresql
db-name=spaceschema
db-user=spaceuser
db-password=spacepw
db-host=localhost
db-port=5432
enable-tftp=Y
EOF

Correr a instalação
spacewalk-setup –answer-file=/root/spacewalk-answer-file

[root@lxcVpar36 ~]# spacewalk-setup –answer-file=/root/spacewalk-answer-file
* Loading answer file: /root/spacewalk-answer-file.
** Database: Setting up database connection for PostgreSQL backend.
Database “spaceschema” does not exist
** 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.
** GPG: Creating /root/.gnupg directory
* Performing initial configuration.
* Configuring apache SSL virtual host.
sysctl: cannot stat /proc/sys/crypto/fips_enabled: No such file or directory
** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave
* Configuring jabberd.
* Creating SSL certificates.
** 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..
* Restarting services.
Installation complete.
Visit https://lxcVpar36 to create the Spacewalk administrator account.
[root@lxcVpar36 ~]#

Caso vos ocorra um erro como o seguinte createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII), efetuar:

su – postgres
psql
UPDATE pg_database SET datistemplate = FALSE WHERE datname = ‘template1’;
DROP DATABASE template1;
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = ‘UNICODE’;
UPDATE pg_database SET datistemplate = TRUE WHERE datname = ‘template1’;
\c template1
VACUUM FREEZE;
\q

(Repetir a instalação. O processo já irá deverá concluir com sucesso).

Até a próxima semana, onde explicarei como adicionar repositórios, canais e agentes de forma a fazer patch managment para a solução!

Caso tenham duvidas já sabem onde me encontrar.

Aquele abraço
Nuno Higgs.