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.