# TEST ANSIBLE COMMANDS/MODULES IN SECONDS -- BY RUNNING: # ansible-playbook -i ansible_hosts test.yml --connection=local # TEST A SINGLE ANSIBLE COMMAND/MODULE: # ansible localhost -m ansible.builtin.setup | grep -e "ansible_machine\b" -e ansible_architecture # ansible localhost -m ansible.builtin.shell -a 'echo $TERM' # ansible localhost -m ansible.builtin.copy -a "src=/etc/hosts dest=/tmp/hosts" # ansible localhost -m ansible.builtin.systemd -a "name=nginx state=restarted" # https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html - hosts: all become: yes # Optional privilege escalation #vars_files: # - roles/0-init/defaults/main.yml # - vars/default_vars.yml # - vars/{{ ansible_local.local_facts.os_ver }}.yml # - /etc/iiab/local_vars.yml # - /etc/iiab/iiab_state.yml #roles: # - { role: 0-init } tasks: #- include_role: # name: 0-init # 2024-08-15: Still not working with ansible-core 2.17.3 -- instead of # migrating from Python's crypt library to passlib, Ansible is deprecating: # https://github.com/ansible/ansible/issues/81949 # https://github.com/iiab/iiab/blob/485a619bfa082716ec848b5b34893dd3046175a8/roles/cups/tasks/install.yml#L70-L78 #- debug: # msg: "{{ 'changeme' | password_hash('sha512') }}" # msg: "{{ 'changeme' | password_hash('yescrypt') }}" # crypt.crypt STILL doesn't support 'yescrypt' algorithm ? #- pause: - debug: var: "'3.12.3' is version('3.12', '<')" - name: DOUBLE UP to escape single quotes... '"''"' e.g. iiab.ini descriptions for azuracast, captiveportal, mosquitto, munin, nodejs, osm-vector-maps, sshd debug: msg: '"''"' # OR: '''' FAILS: '"\'"' - name: BACKSLASH to escape double quotes... "'\"'" e.g. cups/tasks/install.yml debug: msg: "'\"'" # OR: "\"" FAILS: "'""'" - name: "Entire string must be enclosed in quotes if using ' #' Space-then-Pound/Hash sequence -- or right side will be a comment! e.g. roles/vnstat/install.yml" debug: msg: "Left side # Right side" - name: a shows "VARIABLE IS NOT DEFINED!" -- whereas b (w/o whitespace) AND c (with space) AND d (with tab, STRICTLY DISALLOWED IN YAML BY ansible-core 2.11.6) showed null (without quotes!) -- whereas e (singlequotes) and f (doublequotes) show "" empty string set_fact: #a: # Tabs NO LONGER ALLOWED, in strict YAML: https://stackoverflow.com/a/19976827 b: c: # Space d: '' e: "" f: "3.10" # zero preserved b/c AnsibleUnicode (i.e. string) g: +03.10 # plus sign & zeros dropped b/c float - debug: var: a # "VARIABLE IS NOT DEFINED!" - debug: var: a | type_debug # AnsibleUndefined - debug: var: b # null - debug: var: b | type_debug # NoneType - debug: var: c # null - debug: var: c | type_debug # NoneType - debug: var: d # "" - debug: var: d | type_debug # AnsibleUnicode - debug: var: e # "" - debug: var: e | type_debug # AnsibleUnicode - debug: var: f # "3.10" - debug: var: f | type_debug # AnsibleUnicode - debug: var: g # 3.1 - debug: var: g | type_debug # float - debug: var: ansible_local.local_facts # SEE: /opt/iiab/iiab/scripts/local_facts.fact - debug: var: ansible_local.local_facts.os_ver # Since Ansible 2.7, avoid ansible_distribution: https://github.com/iiab/iiab/pull/3237 # https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html#commonly-used-facts - debug: var: ansible_facts['distribution'] # ansible_facts.distribution ? - debug: var: ansible_facts['os_family'] # ansible_facts.os_family ? - debug: var: ansible_facts['distribution_major_version'] # ansible_facts.distribution_major_version ? - debug: var: ansible_architecture - debug: var: ansible_machine - command: dpkg --print-architecture register: cmd - debug: msg: "'dpkg --print-architecture' output: {{ cmd.stdout }}" - command: dpkg --print-foreign-architectures register: cmd - debug: msg: "'dpkg --print-foreign-architectures' output: {{ cmd.stdout }}" # TEST ANSIBLE COMMANDS/MODULES HERE!