ficheros y openssl

permite trabajar con ficheros, plantillas y directorios

  • acl : establece y obtiene información de la listas de control de acceso
  • archive : crea un fichero comprimido a partir de una lista de ficheros o estructura de directorios
  • assemble : asambla un fichero de configuración desde fragmentos
  • blockinfile : Inserta/Actualiza/Elimina un bloque de texto de un fichero
  • copy : copiar ficheros a ubicaciones remotas (desde servidor Ansible → nodo remoto)
  • fetch : copiar del nodo remoto al servidor
  • file : establece atributos a ficheros
  • find : devuelve una listsa de ficheros a partir de un patrón
  • inifile : manejo de ficheros INI
  • iso_extract : extrae ficheros de una imagen ISO
  • lineinfile : asegura que una línea está en un fichero o reemplaza la misma con el uso de REGEX
  • patch : aplica parches usando GNU/Patch
  • replace : reemplaza las coincidencias de un texto por otro
  • stat : obtiene información del fichero o del FS
  • synchronize : rsync
  • tempfile : crear ficheros/directorios temporales
  • template : uso de plantillas
  • unarchive : extraer ficheros (en remoto)
  • xatrr : atributos extendidos

los módulos para OpenSSL:

  • openssl_privatekeys : generar claves privadas
  • openssl_publickey : generar claves públicas

https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module

  • obligatorios
    • dest = /path/destino
  • opcionales
    • backup = yes/no
    • content = «contenido»
    • force = yes/no
    • owner = usuario
    • group = grupo
    • mode = modo
    • src = /path/origen
- name: copiar configuración
  copy: src=apache2.conf dest=/etc/apache2/apache2.conf owner=www-data group=www-data
- name: crear contenido en fichero
  copy: content="Mi contenido en un fichero" dest=/etc/mi.conf

https://docs.ansible.com/ansible/latest/modules/template_module.html#template-module

  • obligatorios
    • dest = /path/destino
    • src = /path/origen
  • opcionales
    • backup = yes/no
    • force = yes/no
    • owner = usuario
    • group = grupo
    • mode = modo
- name: copiar pantilla de configuración
  template: src=apache2.conf.j2 dest=/etc/apache2/apache2.conf backup=yes

https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module

  • obligatorios
    • path = /path/al/fichero
  • opcionales
    • backup = yes/no
    • force = yes/no
    • owner = usuario
    • group = grupo
    • mode = modo
    • state
      • file
      • link
      • directory
      • hard
      • touch
      • absent
...
tasks:
  - name: propiedades del fichero
    file: path="/path/al/fichero" backup=yes mode="777"
  - name: borrar el fichero
    file: path="/path/al/fichero" backup=yes absent=yes
  - name: verificar que directorio existe
    file:
      path: "/path/to/directory"
      state: directory
      owner: root
      group: systemd-journal
      mode: 2755
    notify: reiniciar_journald
handlers:
  - name: reiniciar_journald
    service: name=systemd-journald state=restarted

https://docs.ansible.com/ansible/latest/modules/stat_module.html#stat-module

  • obligatorio
    • path = /path/al/fichero
  • opcional
    • get_attributes = True / False
    • get_checksum = True / False
    • get_md5 = True / False
    • get_mime = True / False
- name: obtener datos de fichero
  stat: path="/path/to/file" 
  register: datos_fichero
  
- name: mostrar información
  debug: var=datos_fichero
  
- name: en condicional
  debug: msg="es diretorio"
  when: datos.stat.isdir # o cualauier otro atributo

https://docs.ansible.com/ansible/latest/modules/fetch_module.html#fetch-module

  • obligatorio
    • src : /path/to/file en nodo remoto
    • dest : server Ansible
  • opcional
    • fail_on_missing = yes/no
    • flat = yes/NO : recrea la estructura de directorios de src en dest
- name: copiar configuración red
  fetch: src=/etc/network/interfaces dest=/tmp/backup

https://docs.ansible.com/ansible/latest/modules/unarchive_module.html#unarchive-module

  • obligatorio
    • src
    • dest
  • opcional
    • owner
    • group
    • mode
    • remote_src = true / FALSE
    • list_files = yes / NO → lista los ficheros que se han extraído (se puede guardar en registry)
- name: copiar y extraer fichero en remoto
  unarchive: src=<file.tgz> dest=/opt/fichero
  
-name: extraer en remoto fichero ya existente allí
  unarchive: src=<file.tgz> dest=/opt/fichero remote_src=true

https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html#lineinfile-module

  • obligatorio
    • line = «texto»
    • dest = /path/to/file
      • en versiones más modernas, path
  • opcionales
    • owner
    • group
    • mode
    • backup = yes / NO
    • insertafter = REGEX
    • insertbefore = REGEX
    • regexp = REGEX
    • state = present / absent : ??
- name: deshabilita SELinux
  lineinfile: dest=/etc/selinux/config regexp='^SELINUX=' line='SELINUX=disabled'
- name: eliminar la línea que permite al grupo wheel del fichero de configuración de sudoers
  lineinfile: dest=/etc/sudoers state=absent regexp="^wheel"
- name: añadir antes de una línea
  lineinfile: dest=/etc/apache2/ports.conf regexp='^Listen' insertafter="Listen 80" line="Listen 8080"

https://docs.ansible.com/ansible/latest/modules/blockinfile_module.html#blockinfile-module

  • obligatorio
    • block = «texto»
    • dest = /path/to/file
  • opcional
    • owner
    • group
    • mode
    • backup = yes / NO
    • insertafter = REGEX
    • insertbefore = REGEX
    • marker = REGEX
    • state = present / absent : ??
- name: asegurar que el texto está en el fichero
  dest: /etc/ssh/sshd_config
  block: |
    Match user monitor
    Password Authentication no

https://docs.ansible.com/ansible/latest/modules/openssl_privatekey_module.html#openssl-privatekey-module

  • obligatorio
    • path = /path/to/file
  • opcional
    • force = true / false
    • size = 4096
    • state = present / absent
    • type = RSA / DSA
- name: instalar módulo phyton requerido
  apt: name=phyton-openssl state=latest
- name: generar clave privada
  openssl_privatekey: path=/etc/ssl/private/private.pem

https://docs.ansible.com/ansible/latest/modules/openssl_publickey_module.html#openssl-publickey-module

  • obligatorio
    • path = /path/to/file
    • privatekey_path = /path/to/privatekey
  • opcional
    • force = false / true
    • state = present / absent
- name: generar clave pública
  openssl_publickey:
    path: /etc/ssl/private/public.key
    privatekey_path: /etc/ssl/private/private.pem
  • info/cursos/udemy/ansible/modulos/ficheros-openssl.txt
  • Darrera modificació: 25/09/2018 01:57
  • per mate