= Windows
== 3:41 Windows (I)
* win_acl : permisos ficheros/directorios, a usuario/grupos
* win_chocolatey : repositorio paquetes
* win_command : ejecución comandos
* win_copy : copiar fichero a nodos remotos
* win_environment : modificar variables entorno
* win_feature : activar/des características
* win_file : crear/eliminar ficheros/directorios
* win_get_url: descargar fichero de URL
* win_group: gestión grupos locales
* win_lineinfile: verifica la existencia de una línea en un fichero
* win_msi: instalar o desinstalar paquetes MSI
* win_package : idem, pero fichero local o URL
* win_ping : ping
* win_reboot : reiniciar
* win_regedit : gestión registro
* win_schedule_task : gestión tareas
* win_service : gestión de servicios
* win_share : gestión puntos de montaje
* win_shell : comandos de consola
* win_stat : información de un fichero
* win_template : copia y procesa plantillas
* win_timezone : establecer zona horaria
* win_unzip : descomprimir fichero
* win_updates : descargar e instalar actualizaciones
* win_uri : interactuar con servicios web
* win_user: administrar usuarios locales
=== win_command
[[https://docs.ansible.com/ansible/latest/modules/win_command_module.html#win-command-module]]
* chdir = directorio
* creates = c:\ruta\fichero
* removes = c:\ruta\fichero
-name: quien soy
hosts: windows01
tasks:
- win_command: whoami
register: usuario
- debug: var=usuario
=== win_copy
[[https://docs.ansible.com/ansible/latest/modules/win_copy_module.html#win-copy-module]]
* requerido
* src = /fichero/a/copiar
* dest = c:\path\destino
...
- name: copiar fichero
win_copy:
src: config.txt
dest: c:\config.txt
=== win_file
[[https://docs.ansible.com/ansible/latest/modules/win_file_module.html#win-file-module]]
* requerido
* path = /ruta
* opcional
* state = { file | directory | touch | absent }
- name: crear estructura de directorios
win_file:
path: c:\users\alberto\Documents\apache2\conf
state: directory
=== win_lineinfile
[[https://docs.ansible.com/ansible/latest/modules/win_lineinfile_module.html#win-lineinfile-module]]
* requerido
* path / dest (para >2.3)
* opcional
* state = { present | absent }
* line = línea
* newline = { windows | unix } -> \r\n o \n
* insertafter = EOF / REGEX
* insertbefore = BOF / REGEX
* create = no / yes
* backup = no / yes
* regexp = REGEX
...
- name: editar puerto
win_lineinfile:
path: c:\httpd.conf
state: present
line: Listen 8080
regexp: "^Listen"
== 3:42 Windows (II)
=== win_service
[[https://docs.ansible.com/ansible/latest/modules/win_service_module.html#win-service-module]]
* requerido
* name = nombre
* opcional
* state = { started | stopped | restarted }
* start_mode = { auto | manual | disabled | delayed }
- name: reiniciar servicio
win_service:
name: spooler
start_mode: manual
state: stopped
=== win_shell
[[https://docs.ansible.com/ansible/latest/modules/win_shell_module.html#win-shell-module]]
* chdir
* creates : c:\path\fichero <- ejecutar si el fichero existe
* executable
* removes : c:\path\fichero <- ejecutar si el fichero no existe
name: ejecutar script
win_shell: c:\script.ps1
args:
chdir: c:\
=== win_template
[[https://docs.ansible.com/ansible/latest/modules/win_template_module.html#win-template-module]]
* requerido
* src
* dest
j2 = jinga2
- name: copiar plantilla
win_template:
src: info.j2
dest: c:\info.txt
=== win_user
[[https://docs.ansible.com/ansible/latest/modules/win_user_module.html#win-user-module]]
* requerido
* name = usuario
* opcional
* account_disabled = no / yes
* account_locked = no / yes
* description = descripción
* fullname
* groups
* group_action = { replace | add | remove }
* password
* password_expired = yes / no
* password_never_expires = yes / no
* state = { present | absent | query }
* update_password = { always | on_create }
* user_cannot_change_password = no / yes
-name: crear usuario
win_user:
name: oforte
password: oforte123
state: present
groups:
- users