M linuxaeconfig.yml => linuxaeconfig.yml +19 -2
@@ 6,6 6,17 @@
# En todo caso son copias exactas y en cada sección hago referencia al origen.
# Si las quiere instalar desde sus orígenes, solo tienes que cambiar estas URLs
##
+java_build: "9"
+java_version: "11.0.11"
+java8_build: "08"
+java8_version: "8u282"
+autofirma_version: "1_6_5"
+autofirma_version_human: "1.6.5"
+dnie_paquete_version: "1.6.6"
+genclaves_version: "1.0.1-0"
+gestorcerts_version: "1.2.0.3"
+cambiarpin_version: "1.2.0.3"
+desbloquearpin_version: "1.2.0.3"
cache_paquetes: "/opt/cachePaquetes"
cache_certificados: "/opt/cacheCertificados"
@@ 43,8 54,6 @@ autofirma_instalador: "https://gitlab.com/danielside/linuxae_software/raw/master
# Librerías multicard DNIE y FNMT
## Origen del software: https://www.sede.fnmt.gob.es/descargas/descarga-software
-multicard_paquete: "libpkcs11-fnmtdnie_{{ multicard_paquete_version }}_Debian_10_Buster_64bits.deb"
-multicard_distro: "https://gitlab.com/danielside/linuxae_software/-/raw/master/{{ multicard_paquete }}"
genclaves_paquete: "configuradorfnmt_{{ genclaves_version }}_amd64.deb"
genclaves_distro: "https://gitlab.com/danielside/linuxae_software/-/raw/master/{{ genclaves_paquete }}?inline=false"
genclaves_preremove_script: "/var/lib/dpkg/info/configuradorfnmt.prerm"
@@ 59,6 68,7 @@ desbloquearpin_distro: "https://gitlab.com/danielside/linuxae_software/-/raw/mas
## Origen del software: https://www.dnielectronico.es/PortalDNIe/PRF1_Cons02.action?pag=REF_1112
dnie_paquete: "Debian_10_libpkcs11-dnie_{{ dnie_paquete_version }}_amd64.deb"
dnie_distro: "https://gitlab.com/danielside/linuxae_software/-/raw/master/{{ dnie_paquete }}"
+nombre_modulo_firefox: "FNMT DNIe"
# Certificados, Autoridades
ac_raiz_fnmt_cert: "AC_Raiz_FNMT-RCM_SHA256.cer"
@@ 68,3 78,10 @@ ac_fnmt_usuarios: "https://www.sede.fnmt.gob.es/documents/10445900/10526749/{{ a
ac_raiz_dnie_dist: "ACRAIZ-DNIE2.zip"
ac_raiz_dnie: "https://www.dnielectronico.es/ZIP/{{ ac_raiz_dnie_dist }}"
ac_raiz_dnie_cert: "AC RAIZ DNIE 2.crt"
+
+# Familias de sistemas operativos
+debian_family:
+ - Debian
+ubuntu_family:
+ - Ubuntu
+ - Linuxmint
M linuxaeparam.yml.dist => linuxaeparam.yml.dist +0 -12
@@ 1,14 1,2 @@
---
usuario: ""
-java_build: "9"
-java_version: "11.0.11"
-java8_build: "08"
-java8_version: "8u282"
-autofirma_version: "1_6_5"
-autofirma_version_human: "1.6.5"
-multicard_paquete_version: "1.6.7"
-dnie_paquete_version: "1.6.6"
-genclaves_version: "1.0.1-0"
-gestorcerts_version: "1.2.0.3"
-cambiarpin_version: "1.2.0.3"
-desbloquearpin_version: "1.2.0.3"
M makemelinuxae.yml => makemelinuxae.yml +18 -4
@@ 5,12 5,26 @@
vars_files:
- linuxaeconfig.yml
- linuxaeparam.yml
-
- roles:
- - role: linuxae
+
+ pre_tasks:
+ - include_role:
+ name: linuxae/general
+ tags:
+ - linuxae
+
+ - include_role:
+ name: linuxae/debian
tags:
- linuxae
-
+ when: ansible_facts["lsb"]["id"] in debian_family
+
+ - include_role:
+ name: linuxae/ubuntu
+ when: ansible_facts["lsb"]["id"] in ubuntu_family
+ tags:
+ - linuxae
+
+ roles:
- role: java
tags:
- java
M roles/autofirma/tasks/main.yml => roles/autofirma/tasks/main.yml +28 -5
@@ 1,4 1,12 @@
---
+- include_vars:
+ file: variables/debian.yml
+ when: ansible_facts["lsb"]["id"] in debian_family
+
+- include_vars:
+ file: variables/ubuntu.yml
+ when: ansible_facts["lsb"]["id"] in ubuntu_family
+
- name: paquetes java para firma electrónica
apt:
name: "{{ item }}"
@@ 77,7 85,7 @@
- name: enlazar librería libmozsqlite3.so
file:
- src: "/usr/lib/firefox-esr/libmozsqlite3.so"
+ src: "{{ firefox_libs }}/libmozsqlite3.so"
dest: "/usr/lib/libmozsqlite3.so"
state: link
tags:
@@ 85,7 93,7 @@
- name: enlazar libreria libnssutil3.so
file:
- src: "/usr/lib/firefox-esr/libnssutil3.so"
+ src: "{{ firefox_libs }}/libnssutil3.so"
dest: "/usr/lib/libnssutil3.so"
state: link
tags:
@@ 99,11 107,11 @@
tags:
- linklib
-- name: enlazar librerías nss mozilla
+- name: enlazar librerías nss mozilla Debian
file:
src: "/usr/lib/{{ arch }}-linux-gnu/nss/{{ item }}"
- dest: "/usr/lib/mozilla/{{ item }}"
- state: link
+ dest: "{{ mozilla_libs }}/{{ item }}"
+ state: link
tags:
- linklib
loop:
@@ 116,6 124,21 @@
- "libfreeblpriv3.so"
- "libnssdbm3.chk"
- "libsoftokn3.chk"
+ when: ansible_facts["lsb"]["id"] in debian_family
+
+- name: enlazar librerías nss mozilla Ubuntu
+ file:
+ src: "/usr/lib/{{ arch }}-linux-gnu/nss/{{ item }}"
+ dest: "{{ mozilla_libs }}/{{ item }}"
+ state: link
+ tags:
+ - linklib
+ loop:
+ - "libfreebl3.chk"
+ - "libnssdbm3.so"
+ - "libfreebl3.so"
+ - "libnssdbm3.chk"
+ when: ansible_facts["lsb"]["id"] in ubuntu_family
- name: bajar autofirma
get_url:
M roles/certificados/tasks/main.yml => roles/certificados/tasks/main.yml +2 -2
@@ 93,8 93,8 @@
- genclavesfnmt
- name: copiar acceso directo configurador fnmt
- copy:
- src: "/usr/share/applications/configuradorfnmt.desktop"
+ template:
+ src: configuradorfnmt.desktop.j2
dest: "/home/{{ usuario }}/Escritorio/configuradorfnmt.desktop"
owner: "{{ usuario }}"
group: "{{ usuario }}"
R roles/linuxae/tasks/main.yml => roles/linuxae/debian/tasks/main.yml +1 -56
@@ 1,52 1,10 @@
----
-- name: crear cache de paquetes
- file:
- path: "{{ cache_paquetes }}"
- state: directory
-
-- name: crear cache de certificados
- file:
- path: "{{ cache_certificados }}"
- state: directory
- tags:
- - certificados
-
-- name: crear directorio firefox opt
- file:
- path: "{{ directorio_firefox_opt }}"
- state: directory
- tags:
- - certificados
-
-- name: crear directorio opt linuxae
- file:
- path: "{{ opt_software }}"
- state: directory
- tags:
- - multicard
-
-- name: crear directorio usuario pki
- file:
- path: "{{ directorio_usuario_pki }}"
- state: directory
- owner: "{{ usuario }}"
- group: "{{ usuario }}"
-
-- name: paquetes genéricos
- apt:
- name: "{{ item }}"
- state: present
- loop:
- - "unzip"
- - "libc-bin"
-
- name: obtener el perfil default, que es el que detecta autofirma (no el default-esr)
shell: |
egrep "Path=(.+)default$" {{ firefox_ruta_usuario }}/profiles.ini | cut -d '=' -f 2
register: perfil_firefox_default
tags:
- perfil
-
+
- name: obtener el perfil default-esr, que es el que viene activado por defecto en debian
shell: |
egrep "Path=(.+)default-esr$" {{ firefox_ruta_usuario }}/profiles.ini | cut -d '=' -f 2
@@ 89,16 47,3 @@
state: link
owner: "{{ usuario }}"
group: "{{ usuario }}"
-
-- name: librerías para tarjetas criptográficas (dnie, fnmt)
- apt:
- name: "{{ item }}"
- state: present
- loop:
- - "libccid"
- - "pcscd"
- - "pcsc-tools"
- - "libacsccid1"
- - "pinentry-gtk2"
- - "libassuan0"
-
A roles/linuxae/general/tasks/main.yml => roles/linuxae/general/tasks/main.yml +54 -0
@@ 0,0 1,54 @@
+---
+- name: crear cache de paquetes
+ file:
+ path: "{{ cache_paquetes }}"
+ state: directory
+
+- name: crear cache de certificados
+ file:
+ path: "{{ cache_certificados }}"
+ state: directory
+ tags:
+ - certificados
+
+- name: crear directorio firefox opt
+ file:
+ path: "{{ directorio_firefox_opt }}"
+ state: directory
+ tags:
+ - certificados
+
+- name: crear directorio opt linuxae
+ file:
+ path: "{{ opt_software }}"
+ state: directory
+ tags:
+ - multicard
+
+- name: crear directorio usuario pki
+ file:
+ path: "{{ directorio_usuario_pki }}"
+ state: directory
+ owner: "{{ usuario }}"
+ group: "{{ usuario }}"
+
+- name: paquetes genéricos
+ apt:
+ name: "{{ item }}"
+ state: present
+ loop:
+ - "unzip"
+ - "libc-bin"
+
+- name: librerías para tarjetas criptográficas (dnie, fnmt)
+ apt:
+ name: "{{ item }}"
+ state: present
+ loop:
+ - "libccid"
+ - "pcscd"
+ - "pcsc-tools"
+ - "libacsccid1"
+ - "pinentry-gtk2"
+ - "libassuan0"
+
A roles/linuxae/ubuntu/tasks/main.yml => roles/linuxae/ubuntu/tasks/main.yml +49 -0
@@ 0,0 1,49 @@
+- name: obtener el perfil default, que es el que detecta autofirma (no el default-esr)
+ shell: |
+ egrep "Path=(.+)default$" {{ firefox_ruta_usuario }}/profiles.ini | cut -d '=' -f 2
+ register: perfil_firefox_default
+ tags:
+ - perfil
+
+- name: obtener el perfil default-esr, que es el que viene activado por defecto en debian
+ shell: |
+ egrep "Path=(.+)default-release$" {{ firefox_ruta_usuario }}/profiles.ini | cut -d '=' -f 2
+ register: perfil_firefox_default_release
+ tags:
+ - perfil
+
+- name: borrar el directorio del perfil no release
+ file:
+ path: "{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }}"
+ state: absent
+ backup: yes
+ when: perfil_firefox_default_release.stdout != ""
+ tags:
+ - perfil
+
+- name: dejar un solo perfil, el default va enlazado al default-release (por Autofirma)
+ file:
+ src: "{{ firefox_ruta_usuario }}/{{ perfil_firefox_default_release.stdout }}"
+ dest: "{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }}"
+ state: link
+ owner: "{{ usuario }}"
+ group: "{{ usuario }}"
+ when: perfil_firefox_default_release.stdout != ""
+ tags:
+ - perfil
+
+- name: enlazar key4.db
+ file:
+ src: "{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }}/key4.db"
+ dest: "{{ directorio_usuario_pki }}/key4.db"
+ state: link
+ owner: "{{ usuario }}"
+ group: "{{ usuario }}"
+
+- name: enlazar cert9.db
+ file:
+ src: "{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }}/cert9.db"
+ dest: "{{ directorio_usuario_pki }}/cert9.db"
+ state: link
+ owner: "{{ usuario }}"
+ group: "{{ usuario }}"
M roles/multicard/tasks/main.yml => roles/multicard/tasks/main.yml +3 -3
@@ 30,7 30,7 @@
- name: detectar si está instalado el módulo de seguridad firefox
shell: |
- modutil -dbdir sql:{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }} -list 'FNMT DNIe' | grep Enabled | cut -d ":" -f 2
+ modutil -dbdir sql:{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }} -list '{{ nombre_modulo_firefox }}' | grep '{{ nombre_modulo_firefox }}' | cut -d " " -f 2
register: modulo_fnmtdnie_instalado
become: yes
become_user: "{{ usuario }}"
@@ 39,8 39,8 @@
- name: instalar en el navegador el dispositivo de seguridad para FNMT DNIE
shell: |
- su {{ usuario }} -c "modutil -dbdir sql:{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }} -add 'FNMT DNIe' -libfile /usr/lib/libpkcs11-fnmtdnie.so -force"
- when: modulo_fnmtdnie_instalado.stdout != " Enabled"
+ su {{ usuario }} -c "modutil -dbdir sql:{{ firefox_ruta_usuario }}/{{ perfil_firefox_default.stdout }} -add '{{ nombre_modulo_firefox }}' -libfile /usr/lib/libpkcs11-fnmtdnie.so -force"
+ when: modulo_fnmtdnie_instalado.stdout != "FNMT"
tags:
- modutil
A templates/configuradorfnmt.desktop.j2 => templates/configuradorfnmt.desktop.j2 +11 -0
@@ 0,0 1,11 @@
+[Desktop Entry]
+Version=1.0.1
+Type=Application
+Terminal=false
+Exec=/usr/bin/configuradorfnmt %u
+Name=Configurador FNMT
+Icon=/usr/lib/configuradorfnmt/configuradorfnmt.png
+MimeType=x-scheme-handler/fnmtcr;
+Keywords=fnmt;certificate
+Categories=GNOME;Application
+Name[es_ES]=Configurador FNMT
D templates/gestorcertificados.desktop.j2 => templates/gestorcertificados.desktop.j2 +0 -10
@@ 1,10 0,0 @@
-[Desktop Entry]
-Version=1.0
-Type=Application
-Name=Gestor de Certificados FNMT
-Comment=
-Exec=/usr/bin/GestorCertificados %u
-Icon=gcr-smart-card
-Path=
-Terminal=false
-StartupNotify=true>
\ No newline at end of file
A variables/debian.yml => variables/debian.yml +6 -0
@@ 0,0 1,6 @@
+---
+firefox_libs: "/usr/lib/firefox-esr"
+mozilla_libs: "/usr/lib/mozilla"
+multicard_paquete_version: "1.6.7_danielside"
+multicard_paquete: "libpkcs11-fnmtdnie_{{ multicard_paquete_version }}_Debian_10_Buster_64bits.deb"
+multicard_distro: "https://gitlab.com/danielside/linuxae_software/-/raw/master/{{ multicard_paquete }}"
A variables/ubuntu.yml => variables/ubuntu.yml +6 -0
@@ 0,0 1,6 @@
+---
+firefox_libs: "/usr/lib/firefox"
+mozilla_libs: "{{ firefox_libs }}"
+multicard_paquete_version: "1.6.6_danielside"
+multicard_paquete: "libpkcs11-fnmtdnie_{{ multicard_paquete_version }}_Ubuntu_20.04.1_LTS_20.10_64bits.deb"
+multicard_distro: "https://gitlab.com/danielside/linuxae_software/-/raw/master/{{ multicard_paquete }}"