Cómo construir un almacén todo en uno con elegancia

Los estudiantes que han realizado proyectos a gran escala deben haber hecho almacenes de yum personalizados. Hay muchas formas de personalizar yum en línea, ¡pero hoy tenemos una forma diferente de jugar!

Déjame hacerte algunas preguntas antes de empezar

  • ¿Cómo hacer un almacén rápidamente?

  • ¿Cómo hacer rápidamente un almacén mínimo?

  • ¿Cómo hacer rápidamente un almacén todo en uno que contenga docker, pypi, yum, maven, etc.?

  • ¿Cómo instalar rápidamente los paquetes de software que necesitamos en un entorno fuera de línea?


¿Qué es Nexus?

En pocas palabras, Nexus es una herramienta integral de gestión de almacenes que puede ayudarnos a resolver una serie de problemas relacionados con los paquetes de software. ¡Restauramos algunas escenas reales y luego invitaremos al protagonista de hoy, Nexus, a brillar en la audiencia!

escenario 1

La empresa asumió un proyecto muy grande y necesitaba implementar docenas de productos en el entorno fuera de línea del usuario. ¡Entonces esta gloriosa y ardua tarea se entrega a los estudiantes de operación y mantenimiento!

Durante la comida, vi a los compañeros de operación y mantenimiento deprimidos, entonces le pregunté en el pasado inexplicablemente, la empresa tiene un gran proyecto, ¿por qué sigues triste? Los estudiantes de operación y mantenimiento dijeron que para estas docenas de productos, hay mucho software para instalar y muchas dependencias de paquetes de software ¿Cómo puede ser bueno esto?

Le di una palmada en el hombro al compañero de operación y mantenimiento y le dije: Hermano Xinjie, ¡el hermano Jie lo llevará a volar!

Instalar el servicio Nexus

Busque una máquina en la red interna que pueda acceder a la red pública e instale el servicio Nexus

Descomprimir el software

tar xzf nexus-3.14.0-04-unix.tar.gz -C /data/sonatype-work/nexus3
echo 'NEXUS_HOME="/data/nexus-3.14.0-04"' >> ~/.bashrc
echo 'run_as_user="root"' >> /data/nexus-3.14.0-04/bin/nexus.rc

Configuración del servicio

shell> vim /etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/data/nexus-3.14.0-04/bin/nexus start
ExecStop=/data/nexus-3.14.0-04/bin/nexus stop
User=root
Restart=on-abort
[Install]
WantedBy=multi-user.target

Empieza el servicio

systemctl reload-daemon
systemctl start nexus

iniciar sesión

http://10.200.60.21:8081/

Contraseña de cuenta predeterminada: admin / admin123

登录后记得修改 admin 密码

Configurar el proxy yum

Crea un repositorio

Seleccione "yum (proxy)"

Confirmar la dirección del almacén de Tsinghua Yum

Complete "nombre" y "Almacenamiento remoto", tenga en cuenta que "Almacenamiento remoto" debe terminar con "/"

Después de que se crea el repositorio

Determine el estado del repositorio, "Online-Remote Available" es el estado correcto

Escriba el archivo de configuración del cliente Yum, tenga en cuenta que "baseurl" también debe terminar con "/".

shell> vim tsinghua.repo
[tsinghua]
name=Tsinghua RHEL/CentOS $releasever - $basearch
baseurl=http://admin:[email protected]:8081/repository/tsinghua/$releasever/os/$basearch/
enabled=1
gpgcheck=0

Realizar la instalación

yum clean all; yum makecache
yum install http

Una vez completada la instalación, compruebe que ya haya paquetes rpm instalados en el almacén.

Al ver esto, no sé si puedes entenderlo. La operación anterior es que usamos la función del proxy Yum en el almacén de Nexus para crear un repositorio para la fuente de Tsinghua Yum y luego configurarlo para que apunte a Nexus en la máquina en la red interna. Si instala el software en este momento, encontrará el paquete de software en la fuente Tsinghua Yum a través de Nexus y lo instalará.

Siempre que los estudiantes de operación y mantenimiento utilicen la fuente Yum configurada, todo el software instalado se registrará aquí. Una vez completada la prueba, descargue los paquetes de software en lotes y luego cree un almacenamiento privado a través de Nexus para usarlos perfectamente.

Hay dos situaciones para los paquetes.

  • Si el paquete no existe, Nexus descargará el paquete de forma remota desde el proxy.

  • Si el paquete de software existe, se devuelve directamente al cliente para su uso.

Algunos estudiantes pueden haber preguntado, ¿qué debo hacer si el paquete fuente de Tsinghua Yum no es suficiente? También podemos agregar la fuente de 163 y epel, por lo que siempre que podamos encontrar la dirección que proporciona Yum, podemos usar el proxy yum de Nexus tanto como queramos. Y la configuración anterior no distingue la versión del sistema operativo, como CentOS 6 también se puede usar, ¿no lo crees? Echemos un vistazo ~

shell> cat /etc/*release*
CentOS release 6.9 (Final)
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
cat: /etc/lsb-release.d: Is a directory
CentOS release 6.9 (Final)
CentOS release 6.9 (Final)
cpe:/o:centos:linux:6:GA
yum clean all; yum makecache
yum install httpd -y

Como puede ver, ha aparecido un directorio "6" y también se han generado paquetes rpm relacionados con http en la rama

Piénselo todo el mundo, ¿por qué es esto?

Escena dos

Se me acercó un pequeño administrador de bases de datos y me dijo, hermano Jie, quiero instalar MySQL 8.0, pero no hay un paquete de instalación en la fuente de Yum en nuestra intranet y la empresa lo descarga muy lentamente. ¿Pueden hacer algo?

Lo miré y le dije: Hermano Xinjie, no vuelque el automóvil. Todos, díganos qué podemos hacer para ayudarlo.

Encuentra la fuente oficial de Yum de MySQL

Descárgalo y échale un vistazo ¿Por qué es un paquete rpm? Que no cunda el pánico, rpm en sí mismo es un paquete comprimido, vamos a abrirlo con una herramienta de compresión

El archivo de repositorio está oculto en el interior, hay dos archivos de repositorio

  • mysql-community-source.repo

  • mysql-community.repo

Supongamos que el que tiene la fuente es el repositorio del código fuente, el que no tiene la fuente es el paquete rpm compilado y empaquetado, abrimos directamente mysql-community.repo, y podemos ver que la fuente oficial de MySQL original de Yum está ahí. Aquí, creo que todos están familiarizados con el contenido.

Al ver esto, ¡todos entienden algo de nuevo! Sí, con la dirección de origen oficial de Yum, podemos crear un proxy de Yum en Nexus

Escribir archivo de repositorio

shell> cat mysql8.repo
[mysql8]
name=Mysql for RHEL/CentOS $releasever - $basearch
baseurl=http://admin:[email protected]:8081/repository/MySQL8.0/$releasever/$basearch/
enabled=1
gpgcheck=0

Realizar la instalación

yum install yum install mysql-community-client-8.0.11 mysql-community-server-8.0.11

De manera similar, esta fuente de Yum es compatible con CentOS 6 y CentOS 7. Coloque el mismo archivo de repositorio en la máquina CentOS 6 y realice la instalación.

Escena tres

En este día, otro tipo de operación y mantenimiento se me acercó y me dijo que Jie Ge Jie, tenemos muchas necesidades esta vez, tenemos que descargar muchas imágenes de docker, descargar muchas imágenes de pypi e instalar varias versiones de MySQL. Incierto, ven y apóyanos ~~~

Vomito ... Ahora que el hermano Jie no puede ayudarlo, déle un documento y cuídelo usted mismo. Jaja

fin

Combinando los escenarios anteriores, creo que todos tienen un conocimiento general de Nexus. La administración de autoridad de Nexus, LDAP y https tienen el soporte correspondiente. Incluso podemos usarlo como un servidor FTP, nuestro proceso CI / CD También se ha integrado Nexus. Así que Nexus se divierte mucho, esperando que todos exploren (en) y encuentren (pit) ¡ja!

| Sobre el autor

Liu Zhijie | Ahora trabaja en Guoshuang Technology, ingeniero senior de bases de datos.

Experiencia en la entrega de proyectos a gran escala, rica experiencia en administración de bases de datos, principalmente responsable de la operación y mantenimiento de bases de datos relacionadas con MySQL, PostgresSQL y Oracle.

¡Le gusta aprender y compartir tecnología y mejorar con todos!

  • Cursos boutique de Zhishutang, MySQL, optimización SQL, Python, Elastic, etc.

    El curso de MySQL se ha actualizado por completo a MySQL 8.0, y ahora es perfecto para subir al tren. Comencemos el viaje de MySQL 8.0.


    Únete a Zhishutang

    ¡Desafíe el salario anual de más de 500.000!

    Zhishutang "MySQL Practical Optimization Class" ha lanzado oficialmente Tencent Classroom, escanea el código para unirte al grupo para conocer los detalles del curso y hay descuentos para los profesores asistentes.

Supongo que te gusta

Origin blog.csdn.net/n88Lpo/article/details/108543655
Recomendado
Clasificación