~danielside/linuxae

9b32753cd567b6673130b8ab6559205c879ec575 — Danielside 2 years ago 0079f38 + 904d4be
Merge branch 'feature/roles-ubuntu' into 'master'

añade roles ubuntu o debian como pre tags y condicionales de manera que ubuntu...

See merge request danielside/linuxae!4
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 }}"