
Fondo de Escritorio
En los dispositivos de la sala de computación es necesario establecer una imagen de fondo del escritorio que represente a la institución o, al menos, una fotografía que dé uniformidad a los equipos. Además, se debe evitar que los estudiantes reemplacen esta imagen por otra.
El siguiente código permite configurar esto en cada equipo de forma remota usando un playbook de ansible. Previamente, he configurado el acceso por ssh a cada equipo para acceder sin que se solicite contraseña, y he creado un archivo de texto hosts.ini que lista las direcciones IPs de los equipos del salón.
---
- name: Configurar y bloquear el fondo de escritorio en Linux Mint
hosts: sala_computacion # Asegúrate que 'sala_computacion' esté definido en tu inventario
become: yes # Esencial, ya que escribiremos en /etc/
vars:
# --- ¡MODIFICA ESTA VARIABLE! ---
# Ruta completa a la imagen que DEBE existir en los equipos cliente.
# Si la imagen no está allí, este playbook funcionará, pero el fondo se verá negro.
# Puedes usar otro playbook de Ansible (con el módulo 'copy') para subirla primero.
ruta_imagen_fondo: "/usr/share/backgrounds/fondo_colegio.jpg"
tasks:
- name: 1. Crear el perfil de dconf
ansible.builtin.blockinfile:
path: /etc/dconf/profile/user
create: yes # Crea el archivo si no existe
owner: root
group: root
mode: '0644'
block: |
user-db:user
system-db:local
- name: 2. Crear el directorio para los 'locks' de dconf
ansible.builtin.file:
path: /etc/dconf/db/local.d/locks
state: directory
owner: root
group: root
mode: '0755'
- name: 3. Crear archivo de bloqueo (lock) del fondo de pantalla
ansible.builtin.blockinfile:
path: /etc/dconf/db/local.d/locks/01_wallpaper_lock
create: yes
owner: root
group: root
mode: '0644'
block: |
# Bloquear el fondo de pantalla para que el usuario no pueda cambiarlo
/org/cinnamon/desktop/background/picture-uri
/org/cinnamon/desktop/background/picture-options
- name: 4. Crear el directorio para la base de datos 'local' de dconf
ansible.builtin.file:
path: /etc/dconf/db/local.d
state: directory
owner: root
group: root
mode: '0755'
- name: 5. Definir el fondo de pantalla (configuración)
ansible.builtin.blockinfile:
path: /etc/dconf/db/local.d/01_wallpaper_settings
create: yes
owner: root
group: root
mode: '0644'
# Usamos 'vars' para insertar la variable definida al inicio
block: |
[org/cinnamon/desktop/background]
picture-uri = 'file://{{ ruta_imagen_fondo }}'
picture-options = 'zoom'
- name: 6. Actualizar la base de datos de dconf para aplicar cambios
ansible.builtin.command: dconf update
changed_when: true # Siempre reporta esta tarea como "cambiada"Cómo usarlo
- Guarda el código: Guarda el texto de arriba en un archivo llamado
establecer_fondo_escritorio.yml. - Define tu inventario: Asegúrate de tener un archivo
hosts.ini(o como lo llames) que defina el grupo[sala_computacion]. - Asegúrate de la imagen: Este playbook asume que la imagen (
fondo_colegio.jpg) ya existe en la ruta/usr/share/backgrounds/de los equipos cliente. Si no es así, debes subirla primero (puedes hacer otro playbook corto con el móduloansible.builtin.copypara eso). - Ejecuta el playbook:
ansible-playbook -i hosts.ini establecer_fondo_escritorio.yml -u cse -k
-i : Lo uso para especificar el archivo de inventario.
-u: Lo uso para especificar usuario que ejecuta el playbook.
-k: Lo uso para ejecutar como sudo, solicitará contraseña.