informatica:linux:ansible
This is an old revision of the document!
Table of Contents
Ejecutar comando con otro usuario
Ponemos la contraseña de sudo en el fichero de hosts:
/etc/ansible/hosts
[jose] 172.17.0.1 ansible_connection=ssh ansible_ssh_user=jose ansible_ssh_pass=**** ansible_sudo_pass=****
Ejecutamos el siguiente playbook:
- name: Ejecutar comando con otro usuario
hosts: jose
tasks:
- name: Ejecutar sudo ls /root
shell: ls /root
become: true
become_user: root
ignore_errors: yes
register: uname_result
# En una misma línea
- debug: msg="{{ uname_result.stdout }}"
# En lineas separadas
- debug: msg="{{ uname_result.stdout_lines }}"
Ejecutamos:
ansible-playbook sudo.yml
Bucles
Por defecto la variable del bucle es item
tasks:
- name: list variables
debug:
msg="reading from {{item.soft}} and {{item.directori}}"
with_items:
- { soft: 'apache.zip', directori: '/opt/pogramas/webserver' }
- { soft: 'java7.zip', directori: '/opt/pogramas/java' }
Cambiando la variable del bucle
tasks:
- name: list variables
debug:
msg="reading from {{mi_variable.soft}} and {{mi_variable.directori}}"
with_items:
- { soft: 'apache.zip', directori: '/opt/pogramas/webserver' }
- { soft: 'java7.zip', directori: '/opt/pogramas/java' }
loop_control:
loop_var: mi_variable
Variables para cada servidor
Dentro de vars/<fichero>.yml El nombre del fichero da igual, pero mejor poner algo representativo
---
vars:
hosts:
server1:
variable_comun: valor1
server2:
variable_comun: valor2
informatica/linux/ansible.1568117996.txt.gz · Last modified: by jose
