Ansible

From Halfface
Jump to navigation Jump to search

ansible options

-l SUBSET, --limit SUBSET                  (further limit selected hosts to an additional pattern)
-t TAGS, --tags TAGS                       (only run plays and tasks tagged with these values)
-e EXTRA_VARS, --extra-vars EXTRA_VARS     (set additional variables as key=value or YAML/JSON, if filename prepend with @)

dont fail on errors

ignore_errors: yes

Start where you left off

ansible-playbook playbook.yml --start-at-task="install packages"

adhoc command

ansible remote.host -u ${USER}_sysadmin -a id

debug

- name: debug1
  debug:
    var: filesystem

- name: debug2
  debug:
    msg: "Template:Item.mount"
  loop: "Template:Ansible mounts"

Print a register

   - name: Print return information from the previous task
     debug:
       msg: "Template:Vm data"

date

Test to get dates with wanted format. test.yml # ansible-playbook test.yml

 - hosts: localhost
   vars:
 #    date_hour_minute: "{{ ansible_date_time.date }}_{{ ansible_date_time.hour }}-{{ ansible_date_time.minute }}"
     date_hour_minute: "{{ lookup('pipe','date +%Y-%m-%d_%H-%M-%S') }}"
   tasks:
       - debug: msg="the current date is {{ ansible_date_time.date }}_{{ ansible_date_time.hour }}-{{ ansible_date_time.minute }}"
       - debug: msg="{{ date_hour_minute }}"

disable fact caching

export ANSIBLE_GATHERING=implicit

variable in jinja2

{{ variable }}

get ansible variables

ansible -b -u ${USER}_sysadmin --extra-vars "ansible_sudo_pass=${COMPANY_PASSWORD}" klara-ikeaapp01 -m ansible.builtin.setup
ansible -m debug -a var=hostvars[inventory_hostname] all

disable logging

ANSIBLE_LOG_PATH=" " ansible-playbook...

ansible-vault

ansible-vault decrypt kubeadmin-password

Looks for

.vault_pass

Specify vault password file

ansible-vault encrypt --vault-password-file .vault_pass <FILE>