Ansible

Administrar repositorios de paquetes de Ubuntu y PPA con Ansible

Administrar repositorios de paquetes de Ubuntu y PPA con Ansible
Agregar y eliminar repositorios de paquetes y PPA en Ubuntu en su sistema personal puede ser una tarea muy simple. Sin embargo, si tiene muchas máquinas Ubuntu, digamos 10 o más, entonces agregar y eliminar manualmente los repositorios de paquetes y los PPA en cada sistema uno por uno resultará tanto tiempo como ineficiente.

El Ansible apt_repository El módulo se puede usar para agregar y eliminar repositorios de paquetes y PPA en sus hosts de Ubuntu con facilidad. También puede actualizar la caché del repositorio de paquetes APT utilizando Ansible apt_repository módulo.

Este artículo le mostrará cómo administrar los repositorios de paquetes de Ubuntu y los PPA utilizando Ansible apt_repository módulo. Entonces empecemos.

Prerrequisitos

Si desea probar los ejemplos incluidos en este artículo:

1) Debes tener Ansible instalado en tu computadora.
2) Debe tener un host Ubuntu configurado para la automatización de Ansible.

Hay muchos artículos sobre LinuxHint dedicados a la instalación de Ansible y la configuración de hosts para la automatización de Ansible. Puede consultar estos artículos si necesita información adicional.

Configuración del directorio del proyecto

Antes de comenzar, será una buena idea crear una estructura de directorio de proyecto, solo para mantener las cosas un poco más organizadas.

Para crear el directorio del proyecto apt-ppa-repo / y todos los subdirectorios necesarios (en su directorio de trabajo actual), ejecute el siguiente comando:

$ mkdir -pv apt-ppa-repo / playbooks

Una vez que se crea el directorio del proyecto, navegue hasta el directorio del proyecto, de la siguiente manera:

$ cd apt-ppa-repo

Crear un Hospedadores archivo de inventario, de la siguiente manera:

$ nano hosts

Agregue la IP del host o el nombre DNS (vm7.nodekite.com y vm8.nodekite.com, en mi caso) de sus hosts de Ubuntu en el archivo de inventario.

Una vez que haya terminado, guarde el archivo presionando + X, seguido por Y y .

Cree un archivo de configuración de Ansible en el directorio del proyecto, de la siguiente manera:

$ nano ansible.cfg

Escriba las siguientes líneas en el ansible.cfg expediente:

[valores predeterminados]
inventario = hosts
host_key_checking = Falso

Una vez que haya terminado, guarde el archivo presionando + X, seguido por Y y .

En este punto, el directorio del proyecto debería tener el siguiente aspecto:

$ árbol

Como puede ver, los hosts de Ansible son accesibles. Entonces, podemos pasar a la siguiente sección de este artículo.

$ ansible all -u ansible -m ping

Agregar repositorios de paquetes

En esta sección, le mostraré cómo agregar un repositorio de paquetes en Ubuntu usando Ansible.

Primero, cree un nuevo libro de jugadas llamado add_repo.yaml en el libros de jugadas / directorio, de la siguiente manera:

$ nano playbooks / add_repo.yaml

Escriba las siguientes líneas en el add_repo.yaml expediente:

- hosts: todos
usuario: ansible
hecho realidad
Tareas:
- nombre: asegúrese de que el repositorio de universos esté habilitado
apt_repository:
repositorio: deb http: // archivo.ubuntu.com / ubuntu universo focal
estado: presente
update_cache: Verdadero

Una vez que haya terminado, guarde el archivo presionando + X, seguido por Y y .

Aquí el repositorio opción de la apt_repository El módulo se usa para especificar la línea de repositorio de paquetes APT (en mi caso, deb http: // archivo.ubuntu.com / ubuntu universo focal) del repositorio de paquetes que desea agregar (en mi caso, Ubuntu 20.04 oficial LTS universo repositorio).

Para obtener más información sobre el formato de la línea de repositorio de paquetes APT, lea la Archivos de configuración del repositorio de paquetes de Ubuntu sección del artículo Cómo usar APT Package Manager en Ubuntu 20.04 LTS.

Como estoy agregando un nuevo repositorio de paquetes aquí, el Expresar es regalo.

La update_cache la opción puede ser Cierto/ o Falso/No.

Si el update_cache se establece en Cierto, Ansible actualizará la caché del repositorio de paquetes APT después de agregar el repositorio de paquetes.

Si el update_cache se establece en Falso, Ansible no actualizará la caché del repositorio de paquetes APT.

Aquí, quiero que el repositorio de paquetes APT se actualice una vez que se agregue el nuevo repositorio de paquetes. Entonces, configuré el update_cache a Cierto.

Ahora, ejecute el add_repo.yaml libro de jugadas, de la siguiente manera:

$ ansible-playbook playbooks / add_repo.yaml

Como puede ver, el libro de jugadas se ejecutó correctamente.

Para confirmar que el repositorio de paquetes (en mi caso, Ubuntu 20.04 LTS universo repositorio), ejecute el siguiente comando:

$ grep --color -R 'http: // archivo.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.D/*.lista

Como puede ver, se ha creado un nuevo archivo en el / etc / apt / sources.lista.D/ directorio (1) y Ubuntu 20.04 LTS universo Se ha agregado el repositorio de paquetes (2).

De forma predeterminada, Ansible generará automáticamente un .lista archivo en el / etc / apt / sources.lista.D/ directorio, dependiendo de la línea del repositorio APT.

Si desea elegir un nombre de archivo específico (i.mi. ubuntu-universe.lista) para su repositorio, puede especificar un nombre de archivo usando el Nombre del archivo opción de la apt_repository módulo en tu add_repo.yaml libro de jugadas, como se muestra en la captura de pantalla a continuación.

Ahora, ejecute el add_repo.yaml libro de jugadas de nuevo.

$ ansible-playbook playbooks / add_repo.yaml

Como puede ver, el nombre del archivo es el mismo que especifiqué.

$ grep --color -R 'http: // archivo.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.D/*.lista

Eliminación de repositorios de paquetes

En esta sección, le mostraré cómo eliminar un repositorio de paquetes existente de sus hosts de Ubuntu usando Ansible.

El manual para eliminar un repositorio de paquetes es casi lo mismo que agregar un repositorio de paquetes. Entonces, puede simplemente copiar el add_repo.yaml archivo de libro de jugadas y modificarlo un poco. Esto es muy sencillo de hacer.

Primero, copie el add_repo.yaml archivo a remove_repo.yaml, como sigue:

$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml

Edite el remove_repo.yaml libro de jugadas, de la siguiente manera:

$ nano playbooks / remove_repo.yaml

Cambio estado: presente a estado: ausente, como se marca en la captura de pantalla a continuación. Este será el único cambio que debe realizar.

Una vez que haya terminado, guarde el archivo presionando + X, seguido por Y y .

Ejecutar el remove_repo.yaml libro de jugadas, de la siguiente manera:

$ ansible-playbook playbooks / remove_repo.yaml

A continuación, ejecute el siguiente comando para verificar si el repositorio de paquetes que desea eliminar se ha eliminado realmente.

$ grep --color -R 'http: // archivo.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.D/*.lista

Como puede ver, Ubuntu 20.04 oficial LTS universo el repositorio de paquetes que agregué anteriormente ha sido eliminado.

NOTA: Ignore el mensaje de error. Este mensaje solo significa que el / etc / apt / sources.lista.D/ el directorio está vacío. Si desea eliminar el mensaje de error, simplemente agregue un 2> / dev / null al final del comando, de la siguiente manera. El error debería desaparecer después de ingresar este comando.

$ grep --color -R 'http: // archivo.ubuntu.com '/ etc / apt / sources.lista
/ etc / apt / sources.lista.D/*.lista 2> / dev / null

Agregar PPA

En esta sección, le mostraré cómo agregar un PPA en sus hosts de Ubuntu usando Ansible.

Voy a agregar el osomon / nodejs-10.19 focales Nodo.js 10.19 PPA para Ubuntu 20.04 LTS en mi ejemplo.

Primero, crea un nuevo libro de jugadas add_ppa.yaml, como sigue:

$ nano playbooks / add_ppa.yaml

Agregue las siguientes líneas en su add_ppa.yaml libro de jugadas:

- hosts: todos
usuario: ansible
hecho realidad
Tareas:
- nombre: Agregar nodo.js 10.19 PPA
apt_repository:
repositorio: ppa: osomon / nodejs-10.19 focales
estado: presente
update_cache: Verdadero
validate_certs: Falso

Una vez que haya terminado, guarde el add_ppa.yaml libro de jugadas presionando + X, seguido por Y y .

Aquí el repositorio opción de la apt_repository El módulo se usa para agregar el PPA osomon / nodejs-10.19 focales (1).

Asegúrate de agregar ppa: antes del nombre de la PPA, yo.mi. ppa: osomon / nodejs-10.19 focales.

La mayoría de los PPA usan certificados autofirmados, por lo que Ansible no puede verificarlos por usted, y pueden aparecer errores al ejecutar el manual.

Puedes configurar validate_certs a Falso para omitir la validación del certificado para el PPA que está agregando (2). Esto es lo que hice en el ejemplo de este artículo.

NOTA: También puede configurar validate_certs a Falso para omitir la validación de la certificación al agregar repositorios de paquetes de terceros.

Ejecutar el add_ppa.yaml libro de jugadas, de la siguiente manera:

$ ansible-playbook playbooks / add_ppa.yaml

Como puede ver, una nueva .lista archivo para el PPA osomon / nodejs-10.19 focales ha sido creado en el / etc / apt / sources.lista.D/ directorio (1).

Al observar el contenido de la ppa_osomon_nodejs_10_19_focal_focal.lista archivo, puedo confirmar que se ha agregado el PPA (2).

$ árbol / etc / apt / sources.lista.D/
$ cat / etc / apt / sources.lista.d / ppa_osomon_nodejs_10_19_focal_xenial.lista

Eliminación de PPA

Puede eliminar los PPA de la misma manera que eliminamos los repositorios de paquetes en la sección anterior de este artículo.

Solo copia el app_ppa.yaml libro de jugadas para remove_ppa.yaml, como sigue:

$ cp -v playbooks / add_repo.yaml playbooks / remove_repo.yaml

Ahora, abre el remove_ppa.yaml libro de jugadas, de la siguiente manera:

$ nano playbooks / remove_ppa.yaml

A continuación, cambie la línea estado: presente a estado: ausente, como se marca en la captura de pantalla a continuación.

Una vez que haya terminado, guarde el remove_ppa.yaml libro de jugadas presionando + X, seguido por Y y .

Ejecutar el remove_ppa.yaml libro de jugadas, de la siguiente manera:

$ ansible-playbook playbooks / add_ppa.yaml

Como puede ver, el ppa_osomon_nodejs_10_19_focal_focal.lista archivo para el osomon / nodejs-10.19 focales PPA ya no está disponible en el / etc / apt / sources.lista.D/ directorio. Entonces, el PPA osomon / nodejs-10.19 focales ha sido removido.

$ árbol / etc / apt / sources.lista.D/

Cambiar el nombre en clave de PPA

A veces, el PPA que está intentando agregar en su host de Ubuntu no es compatible con la versión de Ubuntu que está ejecutando. En ese caso, tendrá que especificar el nombre en clave de la versión de Ubuntu manualmente mientras agrega el PPA.

Suponga que está ejecutando Ubuntu 20.04 con nombre en clave focal y estás intentando agregar el PPA xyz, pero el PPA xyz solo es compatible con Ubuntu 16.04 nombre en clave LTS xenial. Si intentas agregar el PPA xyz, obtendrá un error, ya que el PPA no tiene ningún paquete para Ubuntu 20.04 nombre en clave focal. Pero, si especifica Ubuntu 16.04 nombre en clave LTS xenial al agregar el PPA, no recibirá ningún error. Es posible que pueda instalar el paquete deseado desde el PPA de esta manera, incluso si no es compatible con la versión explícita de Ubuntu que está ejecutando actualmente.

Veamos un ejemplo.

Primero, copie el add_ppa.yaml archivo de libro de jugadas a change_ppa_codename.yaml, como sigue:

$ cp -v playbooks / add_ppa.yaml playbooks / change_ppa_codename.yaml

A continuación, abra el change_ppa_codename.yaml archivo, de la siguiente manera:

$ nano playbooks / change_ppa_codename.yaml

Aquí, todo lo que tiene que hacer es agregar el nombre clave opción con el nombre en clave de Ubuntu deseado (i.mi. nombre en clave: xenial), como se indica en la siguiente captura de pantalla.

Una vez que haya terminado, guarde el change_ppa_codename.yaml archivo presionando + X, seguido por Y y .

Ejecutar el change_ppa_codename.yaml libro de jugadas, de la siguiente manera:

$ ansible-playbook playbooks / change_ppa_codename.yaml

NOTA: Recibo un error porque el PPA que he agregado aquí solo es compatible con Ubuntu 20.04 LTS. Puedes ignorar este mensaje.

Como puede ver, se ha agregado el PPA y el nombre en clave de Ubuntu xenial está en la línea del repositorio de paquetes APT.

Conclusión

Este artículo le mostró cómo administrar (agregar / eliminar) repositorios de paquetes de Ubuntu y PPA usando Ansible.

El Ansible apt_repository El módulo se usa para administrar repositorios de paquetes de Ubuntu y PPA. Este artículo explica todas las opciones importantes del apt_repository módulo de Ansible.

Para obtener más información, consulte la página de documentación oficial de Ansible de apt_repository.

Cómo mostrar la superposición de OSD en aplicaciones y juegos de Linux en pantalla completa
Jugar juegos en pantalla completa o usar aplicaciones en modo de pantalla completa sin distracciones puede aislarlo de la información relevante del si...
Las 5 mejores cartas de captura de juegos
Todos hemos visto y amado la transmisión de juegos en YouTube. PewDiePie, Jakesepticye y Markiplier son solo algunos de los mejores jugadores que han ...
Cómo desarrollar un juego en Linux
Hace una década, no muchos usuarios de Linux predecían que su sistema operativo favorito algún día sería una plataforma de juegos popular para videoju...