GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Spacewalk en CentOS

Spacewalk administra las actualizaciones de contenido de software para las distribuciones derivadas de Red Hat, como Fedora, CentOS y Scientific Linux, detrás de su firewall. Esta es la versión de código abierto del satélite 5 de RedHat. Tenemos el satélite 6 de RedHat y la versión de código abierto es katello. Te mostraré en detalle cómo configurar eso en detalle en mi próximo tutorial. Spacewalk es una herramienta muy poderosa cuando se trata de administrar la infraestructura y es realmente estable y está bien construida.

Estoy revisando la instalación de Spacewalk y le mostraré en detalle cómo configurarlo para que esté listo para la producción junto con todas las funciones que podemos usar con él. Voy con la instalación integrada de Postgres.

En este tutorial, usaré 3 servidores:

  • 192.168.1.20 - servidor de paseo espacial - centos 7
  • 192.168.1.21 - cliente de paseo espacial - centos 6
  • 192.168.1.22 - cliente de caminata espacial - centos 7

Requisitos

CentOS 7 con instalación mínima:

cat /etc/redhat-release

Resultado:

CentOS Linux release 7.3.1611(Core)

SELinux en modo forzado:

sestatus
SELinux status: enabled 
SELinuxfs mount: /sys/fs/selinux
SELinux rootdirectory: /etc/selinux
Loaded policy name: targeted
Current mode:enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
[[email protected] ~]#

Agregue la entrada de host/etc/hosts

192.168.1.20 spacewalk.sunil.cc spacewalk

Instalación del servidor Spacewalk

Instalando el repositorio CentOS de Spacewalk.

rpm -Uvh http://yum.spacewalkproject.org/2.6/RHEL/7/x86_64/spacewalk-repo-2.6-0.el7.noarch.rpm
cat > /etc/yum.repos.d/jpackage-generic.repo << EOF
[jpackage-generic]
name=JPackage generic
baseurl=http://vesta.informatik.rwth-aachen.de/ftp/pub/comp/Linux/jpackage/5.0/generic/free/
#mirrorlist=http://www.jpackage.org/mirrorlist.php?dist=generic&type=free&release=5.0
enabled=1
gpgcheck=1
gpgkey=http://www.jpackage.org/jpackage.asc
EOF
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Instalación de PostgreSQL para paseo espacial:

yum install -y spacewalk-setup-postgresql spacewalk-postgresql

Adición de reglas de cortafuegos.

firewall-cmd --add-service=http --permanent; firewall-cmd --add-service=https --permanent; firewall-cmd --add-port=5222/tcp --permanent;firewall-cmd --add-port=5269/tcp --permanent;firewall-cmd --add-port=69 â??permanent; firewall-cmd --add-port=5222/udp --permanent;firewall-cmd --add-port=5269/udp --permanent

Y recarga el cortafuegos.

firewall-cmd --reload

Activar cortafuegos.

systemctl enable firewalld
systemctl restart firewalld

Configurar servidor PostgreSQL.

Aquí he dado el nombre DB para que sea spacewalk, el nombre de usuario sea spacewalkuser y la contraseña spacewalkuser.

spacewalk-setup-postgresql create --db spacewalk --user spacewalkuser --password spacewalkuser
/usr/bin/spacewalk-setup-postgresql: line 87: isSUSE: command not found
/usr/bin/spacewalk-setup-postgresql: line 100: isSUSE: command not found
Note: Forwarding request to 'systemctl enable postgresql.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.
Hint: the preferred way to do this is now "postgresql-setup initdb"
Initializing database ... OK
/usr/bin/spacewalk-setup-postgresql: line 154: [: 018446744073692774399: integer expression expected
Redirecting to /bin/systemctl start  postgresql.service
Redirecting to /bin/systemctl reload  postgresql.service

Configuración del servidor Spacewalk.

spacewalk-setup  --skip-db-install
* Setting up SELinux..
** Database: Setting up database connection for PostgreSQL backend.
** Database: Embedded database installation SKIPPED.
Could not connect to the database.  Your connection information may be incorrect.  Error: DBI connect('dbname=rhnschema','rhnuser',...) failed: FATAL:  no pg_hba.conf entry for host "[local]", user "rhnuser", database "rhnschema", SSL off at /usr/share/perl5/vendor_perl/Spacewalk/Setup.pm line 1686.

Hostname (leave empty for local)?
Database? spacewalk
Username? spacewalkuser
Password?
** Database: Populating database.
*** Progress: ###########################
* Configuring tomcat.
* Setting up users and groups.
** GPG: Initializing GPG and importing key.
** GPG: Creating /root/.gnupg directory
You must enter an email address.
Admin Email Address? [email protected]
* Performing initial configuration.
* Configuring apache SSL virtual host.
Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]?
** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave
* Configuring jabberd.
* Creating SSL certificates.
CA certificate password?
You must enter a password.
CA certificate password?
Re-enter CA certificate password?
Organization? IT
Organization Unit [spacewalk.sunil.cc]?
Email Address [[email protected]]?
City? Den Haag
State?
State? Zuid-Holland
Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? NL
** 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]? Y
* Restarting services.
Installation complete.
Visit https://spacewalk.sunil.cc to create the Spacewalk administrator account.
[[email protected] ~]#

Reinicie Paseo Espacial.

spacewalk-service restart
Shutting down spacewalk services...
Redirecting to /bin/systemctl stop  taskomatic.service
Stopping cobblerd (via systemctl):                         [  OK  ]
Redirecting to /bin/systemctl stop  rhn-search.service
Redirecting to /bin/systemctl stop  osa-dispatcher.service
Redirecting to /bin/systemctl stop  httpd.service
Redirecting to /bin/systemctl stop  tomcat.service
Redirecting to /bin/systemctl stop  jabberd.service
Redirecting to /bin/systemctl stop  postgresql.service
Done.
Starting spacewalk services...
Redirecting to /bin/systemctl start  postgresql.service
Redirecting to /bin/systemctl start  jabberd.service
Redirecting to /bin/systemctl start  tomcat.service
Waiting for tomcat to be ready ...
Redirecting to /bin/systemctl start  httpd.service
Redirecting to /bin/systemctl start  osa-dispatcher.service
Redirecting to /bin/systemctl start  rhn-search.service
Starting cobblerd (via systemctl):                         [  OK  ]
Redirecting to /bin/systemctl start  taskomatic.service
Done.
[[email protected] ~]#
      

Configurar usuario Spacewalk

Acceda a la URL desde el navegador http://192.168.1.20

Complete los detalles de la organización.

Spacewalk se instaló correctamente.

Creación de canales de Spacewalk

Haga clic en canales -> administrar canales de software -> crear canal

Crear un canal principal -> centos6.8-parent

Ahora necesitamos crear canales secundarios

Canales -> administrar canales -> crear canal

Elija el canal principal para que sea centos-6.8-parent

Ahora crearemos el repositorio para centos 6.8

Vinculando el repositorio al canal secundario que creamos anteriormente

Necesito replicar los mismos pasos para la creación de canales en centos 7.

 

Ahora necesitamos descargar los paquetes del repositorio. Podemos hacerlo a través de la línea de comandos o desde el panel de control.

línea de comando

[[email protected] ~]# spacewalk-repo-sync --list
00:01:23 ======================================
00:01:23 |   Channel Label   |   Repository   |
00:01:23 ======================================
00:01:23 centos-7-child | http://mirror.centos.org/centos/7.3.1611/os/x86_64/
00:01:23 centos-6.8 | http://mirror.centos.org/centos/6.8/os/x86_64/
00:01:23 centos-7 | No repository set
00:01:23 centos-6.8-parent | No repository set
[[email protected] ~]#

[[email protected] ~]# spacewalk-repo-sync -c centos-6.8
00:02:18 ======================================
00:02:18 | Channel: centos-6.8
00:02:18 ======================================
00:02:18 Sync of channel started.
00:02:18 Repo URL: http://mirror.centos.org/centos/6.8/os/x86_64/
00:02:30 Packages in repo:              6696
00:02:40 Packages already synced:          0
00:02:40 Packages to sync:              6696
00:02:40 1/6696 : 389-ds-base-1.2.11.15-74.el6-0.x86_64
00:02:43 2/6696 : 389-ds-base-devel-1.2.11.15-74.el6-0.i686
00:02:43 3/6696 : 389-ds-base-devel-1.2.11.15-74.el6-0.x86_64
00:02:44 4/6696 : 389-ds-base-libs-1.2.11.15-74.el6-0.i686
00:02:45 5/6696 : 389-ds-base-libs-1.2.11.15-74.el6-0.x86_64
00:02:46 6/6696 : ConsoleKit-0.4.1-6.el6-0.x86_64
00:02:47 7/6696 : ConsoleKit-devel-0.4.1-6.el6-0.x86_64

Una vez hecho esto se verá así

[[email protected] ~]# spacewalk-repo-sync -c centos-6.8
08:44:57 ======================================
08:44:57 | Channel: centos-6.8
08:44:57 ======================================
08:44:57 Sync of channel started.
08:44:57 Repo URL: http://mirror.centos.org/centos/6.8/os/x86_64/
08:44:58 Packages in repo:              6696
08:45:47 No new packages to sync.
08:45:47 Repo http://mirror.centos.org/centos/6.8/os/x86_64/ has comps file comps.xml.
08:45:47 Repo http://mirror.centos.org/centos/6.8/os/x86_64/ has 0 errata.
08:45:47 Sync of channel completed in 0:00:49.
08:45:47 Total time: 0:00:49
[[email protected] ~]#

Desde el navegador web

También puede programar la sincronización diaria o semanal para la sincronización automática en esta página y también seleccionar sincronizar solo los paquetes más recientes

Creación de claves de activación para hosts Centos 6 y centos 7 para la autenticación con el servidor spacewalk

Vaya a Sistemas -> Claves de activación -> Crear clave

Ahora necesitamos crear la clave para centos 6, aquí uso la clave como centos-6 y elijo el canal principal que creé anteriormente centos-6.8-parent

Haz lo mismo con centos 7

Debería ver dos teclas, una para centos 6 y otra para centos 7

Configuración del cliente

En este capítulo, le mostraré cómo instalar y configurar clientes con servidores spacewalk.

Cento6 - 192.168.1.21

Cento7 - 192.168.1.22

Configurar repositorio de cliente de yum

Centos 6

[[email protected] ~]# rpm -Uvh http://yum.spacewalkproject.org/2.6-client/RHEL/6/x86_64/spacewalk-client-repo-2.6-0.el6.noarch.rpm

Centos 7

[[email protected] ~]# rpm -Uvh http://yum.spacewalkproject.org/2.6-client/RHEL/7/x86_64/spacewalk-client-repo-2.6-0.el7.noarch.rpm

Instalando los paquetes necesarios.

Centos 6

Instale epel repo y los siguientes paquetes en los nodos centos6 y centos7.

Habilitar epel repositorio

[[email protected] ~]# yum install epel-release -y    
[[email protected] ~]# yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin osad rhncfg-actions rhncfg-management -y

Registrarse en Spacewalk Server

Antes de conectarnos con el servidor de la caminata espacial, necesitaremos descargar el certificado SSL del servidor de la caminata espacial.

[[email protected] ~]# wget -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT http://spacewalk.sunil.cc/pub/RHN-ORG-TRUSTED-SSL-CERT
--2017-03-04 21:54:16--  http://spacewalk.sunil.cc/pub/RHN-ORG-TRUSTED-SSL-CERT
Resolving spacewalk.sunil.cc... 192.168.1.20
Connecting to spacewalk.sunil.cc|192.168.1.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5291 (5.2K)
Saving to: /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT

100%[===================================================================================================================>] 5,291       --.-K/s   in 0s

2017-03-04 21:54:17 (630 MB/s) - /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT saved [5291/5291]

[[email protected] ~]#

Ahora debemos registrarnos con la clave de activación que creamos anteriormente, creamos 1-centos6 para centos6 y 1-centos7 para centos7.

Centos 6

[[email protected] ~]# rhnreg_ks --force --activationkey="1-centos6" --serverUrl=http://spacewalk.sunil.cc/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --profilename=$HOSTNAME

Centos 7

[[email protected] ~]# rhnreg_ks --force --activationkey="1-centos7" --serverUrl=http://spacewalk.sunil.cc/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --profilename=$HOSTNAME

Sincronizando el perfil con spacewalk, ejecútelo en los nodos centos6 y centos7.

[[email protected] ~]# rhn-profile-sync

Esto se puede usar para ejecutar comandos remotos y transferencias de archivos desde spacewalk y una de las características interesantes de usar el servidor spacewalk.

    [[email protected] ~]# chkconfig osad on
[[email protected] ~]# service osad restart
Shutting down osad:                                        [  OK  ]
Starting osad:                                             [  OK  ]
[[email protected] ~]# rhn-actions-control --enable-all
[[email protected] ~]#

    
[[email protected] ~]# systemctl enable osad
Created symlink from /etc/systemd/system/multi-user.target.wants/osad.service to /usr/lib/systemd/system/osad.service.
[[email protected] ~]# systemctl restart osad
[[email protected] ~]# rhn-actions-control --enable-all
[[email protected] ~]#

Ahora podemos hacer una sincronización de perfil.

    [[email protected] ~]# rhn-profile-sync
Updating package profile...
Updating hardware profile...
[[email protected] ~]#
   [[email protected] ~]# rhn-profile-sync
Updating package profile...
Updating hardware profile...
[[email protected] ~]#
    

Ahora puede verificar lo mismo en el tablero de la caminata espacial.

Ejecutar comandos remotos y administrar archivos a través de spacewalk.

En este capítulo, veremos cuán poderosa es la caminata espacial cuando se trata de ejecutar comandos remotos y administrar archivos de configuración.

Para ejecutar comandos remotos, inicie sesión en el panel de Spacewalk y busque el host donde necesitaremos ejecutar el comando remoto.

Haga clic en el comando remoto y escriba los comandos que necesitará para ejecutar.

Una vez programado, puede ir a la pestaña programada y verificar el estado.

Haga clic en el host para ver los resultados.

Ejecutando comandos remotos desde spacewalk.

Necesitaremos instalar spacecmd para ejecutar comandos remotos.

[[email protected] ~]# yum install spacecmd -y

primero agregaremos el sistema usando ssm y antes de eso vamos a iniciar sesión, puede usar las mismas credenciales que la interfaz.

[[email protected] ~]# spacecmd
Welcome to spacecmd, a command-line interface to Spacewalk.

Type: 'help' for a list of commands
      'help ' for command-specific help
      'quit' to quit

Spacewalk Username: administrator
Spacewalk Password:
INFO: Connected to https://spacewalk.sunil.cc/rpc/api as administrator
spacecmd {SSM:0}> system_list
centos6.sunil.cc
centos7.sunil.cc
centos7test.sunil.cc
spacecmd {SSM:0}> ssm_add centos6.sunil.cc
spacecmd {SSM:1}> ssm_list
centos6.sunil.cc
spacecmd {SSM:1}> exit

    

crear un script llamado con cualquier nombre aquí lo nombré ff.sh.

    [[email protected] ~]# cat ff.sh
#!/bin/bash
cat /etc/redhat-release
[[email protected] ~]#
    

Ahora para ejecutar el comando remoto.

[[email protected] ~]# spacecmd -y system_runscript "ssm -f ff.sh"
INFO: Connected to https://spacewalk.sunil.cc/rpc/api as administrator

User:       root
Group:      root
Timeout:    600 seconds
Start Time: 20170305T12:16:17
p
Script Contents
---------------
#!/bin/bash
cat /etc/redhat-release

Systems
-------
centos6.sunil.cc
INFO: Action ID: 33
INFO: Scheduled: 1 system(s)
[[email protected] ~]#
    

Para verificar la salida, puede ejecutar el siguiente comando.

    [[email protected] ~]# spacecmd schedule_getoutput 33
INFO: Connected to https://spacewalk.sunil.cc/rpc/api as administrator
System:      centos6.sunil.cc
Start Time:  20170305T12:16:19
Stop Time:   20170305T12:16:19
Return Code: 0

Output
------
CentOS release 6.8 (Final)

[[email protected] ~]#

    

Solución de problemas

En caso de que vea que los comandos están en estado pendiente durante mucho tiempo, se pueden realizar los siguientes pasos para solucionar este problema.

Asegúrese de que osa-dispatcher se esté ejecutando en el servidor de la caminata espacial.

    [[email protected] ~]# systemctl status osa-dispatcher
? osa-dispatcher.service - OSA Dispatcher daemon
   Loaded: loaded (/usr/lib/systemd/system/osa-dispatcher.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-03-05 09:59:55 CET; 2h 21min ago
  Process: 3470 ExecStart=/usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS)
  Process: 3469 ExecStartPre=/bin/rm -f /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS)
 Main PID: 3474 (osa-dispatcher)
   CGroup: /system.slice/osa-dispatcher.service
           ??3474 /usr/bin/python -s /usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid

Mar 05 09:59:55 spacewalk.sunil.cc systemd[1]: Starting OSA Dispatcher daemon...
Mar 05 09:59:55 spacewalk.sunil.cc systemd[1]: PID file /var/run/osa-dispatcher.pid not readable (yet?) after start.
Mar 05 09:59:55 spacewalk.sunil.cc systemd[1]: Started OSA Dispatcher daemon.
[[email protected] ~]#
    

En caso de que no se esté ejecutando, reinicie el servicio de paseo espacial.

    [[email protected] ~]# spacewalk-service restart
    

Asegúrese de que el puerto del cortafuegos esté abierto para 5222.

Realice los siguientes pasos en el lado del cliente.

    [[email protected] ~]# systemctl stop osad
    [[email protected] ~]# rm -rf /etc/sysconfig/rhn/osad-auth.conf
    [[email protected] ~]# rhn_check -vvv
[[email protected] ~]# systemctl start osad
[[email protected] ~]# systemctl status osad
? osad.service - OSAD daemon
   Loaded: loaded (/usr/lib/systemd/system/osad.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-03-05 13:54:46 CET; 26s ago
  Process: 18696 ExecStart=/usr/sbin/osad --pid-file /var/run/osad.pid (code=exited, status=0/SUCCESS)
 Main PID: 18697 (osad)
   CGroup: /system.slice/osad.service
           ??18697 /usr/bin/python -s /usr/sbin/osad --pid-file /var/run/osad.pid

Mar 05 13:54:46 centos7test.sunil.cc systemd[1]: Starting OSAD daemon...
Mar 05 13:54:46 centos7test.sunil.cc systemd[1]: PID file /var/run/osad.pid not readable (yet?) after start.
Mar 05 13:54:46 centos7test.sunil.cc systemd[1]: Started OSAD daemon.
[[email protected] ~]# netstat -aunltp|grep 5222
tcp     1698      0 192.168.1.23:48127      192.168.1.20:5222       ESTABLISHED 18697/python
[[email protected] ~]#

Desplegando archivo a través de spacewalk.

En este ejemplo, cambiaré el modd del servidor centos 6.

Primero crearé un canal de configuración.



Crear un archivo con el siguiente contenido.

Ahora debemos suscribirnos al canal en el que el servidor debe implementarse.


El archivo se puede extraer del cliente.

    [[email protected] ~]# rhncfg-client channels
Using server name spacewalk.sunil.cc
Config channels:
Label                           Name
-----                           ----
motd-change                     motd
[[email protected] ~]#
[[email protected] ~]# rhncfg-client get
Using server name spacewalk.sunil.cc
Deploying /etc/motd
[[email protected] ~]#
[[email protected] ~]# ls -l /etc/motd
-rw-r--r-- 1 root root 760 Mar  5 14:29 /etc/motd
[[email protected] ~]# cat /etc/motd
********************************************************************
*                                                                  *
* This system is for the use of authorized users only.  Usage of   *
* this system may be monitored and recorded by system personnel.   *
*                                                                  *
* Anyone using this system expressly consents to such monitoring   *
* and is advised that if such monitoring reveals possible          *
* evidence of criminal activity, system personnel may provide the  *
* evidence from such monitoring to law enforcement officials.      *
*                                                                  *
********************************************************************

[[email protected] ~]#

    

Cent OS
  1. Cómo instalar wordpress en CentOS 6

  2. Cómo instalar el servidor de base de datos MySQL 8 en CentOS 8

  3. Cómo instalar Mediawiki en un servidor CentOS

  4. Cómo instalar AIDE en CentOS 7

  5. Cómo instalar SpaceWalk en CentOS 6 / RHEL 6

Cómo instalar PostgreSQL en CentOS 8

Cómo instalar el servidor de base de datos PostgreSQL CentOS 8

Cómo instalar Oracle Database 21C en CentOS 8

Cómo instalar Spacewalk en CentOS 6

Cómo instalar Spacewalk en CentOS 7

Cómo instalar Moodle en CentOS 8