- hosts: localhost tasks: - debug: msg: Ansible version={{ ansible_version.major }}.{{ ansible_version.minor }} - hosts: all tasks: # Create unwritable /tmp/console-None.log # This ensures that no further task can write to it without failing. # A task trying to write to /tmp/console-None.log is considered broken # because zuul_log_id is missing. - name: Create unwritable /tmp/console-None.log file: path: /tmp/console-None.log state: touch mode: 0444 run_once: True - name: Start zuul_console daemon zuul_console: port: "{{ test_console_port }}" # This is checked in indexed JSON output so order is important - name: Output stream test shell: | echo "Standard output test {{ zuul.executor.src_root }}" >&2 echo "Standard error test {{ zuul.executor.src_root }}" - name: Create first file copy: content: "command test one\n" dest: "{{ ansible_user_dir }}/command_test_file1" - name: Create second file copy: content: "command test two\n" dest: "{{ ansible_user_dir }}/command_test_file2" - name: Show contents of first file command: "cat {{ ansible_user_dir }}/command_test_file1" - name: Show contents of second file # We use a sleep here to ensure that we log even after # a period of no logging. shell: "sleep 6 && cat {{ ansible_user_dir }}/command_test_file2" # Test a task with a handler - name: Run a command with notifying a handler command: /bin/true notify: test handler # Test cleanup task - name: Block with cleanup block: - name: Run a command command: /bin/false rescue: - name: Rescue task command: echo "This is a rescue task" always: - name: Always task command: echo "This is an always task" - name: Skip command task command: /bin/true when: false - name: Skip command task loop command: /bin/true when: false with_items: - failed_in_loop1 - failed_in_loop2 handlers: - name: test handler command: echo "This is a handler" - hosts: all strategy: free tasks: - name: Command task 1 within free strategy command: echo "First free task" - name: Command task 2 within free strategy command: echo "Second free task" # Test a role that has an include_role - hosts: all strategy: linear roles: - include-a-role - hosts: compute1 tasks: - name: Single command command: "echo single" # Test commands within loops - name: Command with loop shell: | echo {{ item }} with_items: - item_in_loop1 - item_in_loop2 - name: Failing command with loop shell: | echo {{ item }} exit 1 with_items: - failed_in_loop1 - failed_in_loop2 ignore_errors: True # Try transitive includes two different ways - hosts: compute1 tasks: - include_role: name: include-echo-role vars: item: transitive-one - include_role: name: include-echo-role vars: item: transitive-two - hosts: compute1 roles: - role: include-echo-role item: transitive-three - role: include-echo-role item: transitive-four - hosts: compute1 tasks: - name: Command Not Found command: command-not-found failed_when: false - hosts: compute1 tasks: - name: Debug raw variable in msg debug: msg: '{{ ansible_version }}' - name: Debug raw variable in a loop debug: msg: '{{ ansible_version }}' loop: - 1 - 2