computers.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. ---
  2. - name: Actualizar el archivo /etc/hosts en todos los equipos del inventario
  3. hosts: computers
  4. become: yes
  5. tasks:
  6. - name: Eliminar el usuario ubuntu de los hosts
  7. ansible.builtin.user:
  8. name: ubuntu
  9. state: absent
  10. - name: touch
  11. file:
  12. path: /etc/network/interfaces
  13. state: touch
  14. # - name: Ensure localisation files for es_ES.UTF-8 are available
  15. # locale_gen:
  16. # name: es_ES.UTF-8
  17. # state: present
  18. # - name: Ensure localisation files for es_ES.UTF-8 are available
  19. # locale_gen:
  20. # name: es_ES.UTF-8
  21. # state: present
  22. # - name: Get current locale and language configuration
  23. # command: localectl status
  24. # register: locale_status
  25. # changed_when: false
  26. # - name: Parse 'LANG' from current locale and language configuration
  27. # set_fact:
  28. # locale_lang: "{{ locale_status.stdout | regex_search('LANG=([^\n]+)', '\\1') | first }}"
  29. # - name: Parse 'LANGUAGE' from current locale and language configuration
  30. # set_fact:
  31. # locale_language: "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_lang], true) | first }}"
  32. # - name: Configure locale to es_ES.UTF-8 and language to es_ES.UTF-8
  33. # become: yes
  34. # command: localectl set-locale LANG=es_ES.UTF-8 LANGUAGE=es_ES.UTF-8
  35. # # changed_when: locale_lang != es_ES.UTF-8 or locale_language != es_ES.UTF-8
  36. - name: Configurar la interfaz enp0s8 con una IP estática
  37. ansible.builtin.lineinfile:
  38. path: /etc/default/keyboard
  39. regexp: '^XKBLAYOUT='
  40. line: 'XKBLAYOUT="es"'
  41. backup: yes
  42. - name: Configurar teclado en español
  43. ansible.builtin.lineinfile:
  44. path: /etc/network/interfaces
  45. regexp: '^iface enp0s8 inet'
  46. line: 'iface enp0s8 inet static'
  47. backup: yes
  48. - name: Agregar configuración IP estática
  49. ansible.builtin.blockinfile:
  50. path: /etc/network/interfaces
  51. marker: "# {mark} ANSIBLE MANAGED BLOCK"
  52. block: |
  53. address {{ eth1_ip }}
  54. netmask {{ eth1_gw }}
  55. gateway {{ eth1_dns}}
  56. vars:
  57. eth1_ip: " {{ ipv4_ip }} "
  58. eth1_gw: "{{ ipv4_gw }}"
  59. eth1_dns: "{{ ipv4_dns }}"
  60. # - name: Reiniciar el servicio de red para aplicar los cambios
  61. # ansible.builtin.service:
  62. # name: networking
  63. # state: restarted
  64. # - name: Instalar el paquete network-manager
  65. # apt:
  66. # name: network-manager
  67. # state: present
  68. # update_cache: yes
  69. # - name: Configurar el adaptador de red eth1 con al configuracion existente en host_vars
  70. # community.general.nmcli:
  71. # conn_name: enp0s8
  72. # ifname: enp0s8
  73. # type: ethernet
  74. # ip4: "{{ eth1_ip }}"
  75. # gw4: "{{ eth1_gw }}"
  76. # dns4: "{{ eth1_dns }}"
  77. # state: present
  78. # vars:
  79. # eth1_ip: " {{ ipv4_ip }} "
  80. # eth1_gw: "{{ ipv4_gw }}"
  81. # eth1_dns: "{{ ipv4_dns }}"
  82. - name: Leer el contenido actual del archivo /etc/hosts
  83. ansible.builtin.slurp:
  84. path: /etc/hosts
  85. register: current_hosts
  86. - name: Generar el contenido actualizado del archivo /etc/hosts
  87. ansible.builtin.template:
  88. src: templates/hosts.j2
  89. dest: /etc/hosts
  90. owner: root
  91. group: root
  92. mode: '0644'
  93. vars:
  94. current_hosts_content: "{{ current_hosts.content | b64decode }}"
  95. # notify:
  96. # - Reiniciar servicio de red si es necesario
  97. # handlers:
  98. # - name: Reiniciar servicio de red si es necesario
  99. # ansible.builtin.service:
  100. # name: network
  101. # state: restarted
  102. - name: Reiniciar las maquinas
  103. reboot:
  104. reboot_timeout: 300