Hi everyone,
I’m fairly new to ansible and I stumbled across a problem which I’m unable to solve. *Problem* It occurs when I try to run a playbook that should execute two commands (proprietary sw). The error is either “the input device is not a TTY” or it just hangs with python indend errors depending on the -t or -tt flag for ssh. *Hosts file* [SERVERS] server ansible_host=** dest ip ** [SERVERS:vars] ansible_user = test2 ansible_port = 22 ansible_private_key_file = ~/.ssh/id_rsa ansible_ssh_common_args='-tt -o ServerAliveInterval=30 -o ServerAliveCountMax=60' *Playbook* --- - name: test hosts: SERVERS vars: logfile: "/home/test/reports/{{inventory_hostname}}_ {{ansible_date_time.date}}_{{ansible_date_time.hour}}- {{ansible_date_time.minute}}.log" loghost: "localhost" jumphost: "**src ip**" tasks: - name: ice tool shell: . ~/toolrc && tool async: 1200 poll: 10 register: output - debug: var=output.stdout_lines - name: find logs find: paths: "/home/test2/" patterns: "*2023-09*.log" register: files_to_fetch - name: fetch logs fetch: src: "{{ item.path }}" dest: "/home/test/reports/{{inventory_hostname}}/" flat: yes with_items: "{{ files_to_fetch.files }}" I turned the debug output on. ansible.cfg shows #usetty = True *Ouput* Example withou -tt in the ansible_ssh_common_args 1603371 1693992535.99884: attempt loop complete, returning result 1603371 1693992535.99896: _execute() done 1603371 1693992535.99898: dumping result to json 1603371 1693992535.99902: done dumping result, returning 1603371 1693992535.99913: done running TaskExecutor() for server/TASK: tool [005056bd-514d-af4f-7949-000000000009] 1603371 1693992535.99927: sending task result for task 005056bd-514d-af4f-7949-000000000009 1603371 1693992535.99979: done sending task result for task 005056bd-514d-af4f-7949-000000000009 1603371 1693992536.00018: WORKER PROCESS EXITING changed: [server] => { "ansible_job_id": "452358306988.608654", "changed": true, "cmd": ". ~/toolrc && tool;", "delta": "0:00:01.791007", "end": "2023-09-06 11:28:47.296398", "finished": 1, "invocation": { "module_args": { "_raw_params": ". ~/toolrc && tool;", "_uses_shell": true, "argv": null, "chdir": null, "creates": null, "executable": null, "removes": null, "stdin": null, "stdin_add_newline": true, "strip_empty_ends": true, "warn": true } }, "rc": 0, "start": "2023-09-06 11:28:45.505391", "stderr": "the input device is not a TTY", "stderr_lines": [ "the input device is not a TTY" ], "stdout": "", "stdout_lines": [] } Example with -t in the ansible_ssh_common_args 1605471 1693992665.10629: attempt loop complete, returning result 1605471 1693992665.10642: _execute() done 1605471 1693992665.10644: dumping result to json 1605471 1693992665.10647: done dumping result, returning 1605471 1693992665.10659: done running TaskExecutor() for server/TASK: tool [005056bd-514d-4bf1-ae78-000000000009] 1605471 1693992665.10671: sending task result for task 005056bd-514d-4bf1-ae78-000000000009 1605471 1693992665.10715: done sending task result for task 005056bd-514d-4bf1-ae78-000000000009 1605471 1693992665.10753: WORKER PROCESS EXITING changed: [server] => { "ansible_job_id": "359810881181.622306", "changed": true, "cmd": ". ~/toolrc && tool;", "delta": "0:00:01.693101", "end": "2023-09-06 11:30:56.355022", "finished": 1, "invocation": { "module_args": { "_raw_params": ". ~/toolrc && tool;", "_uses_shell": true, "argv": null, "chdir": null, "creates": null, "executable": null, "removes": null, "stdin": null, "stdin_add_newline": true, "strip_empty_ends": true, "warn": true } }, "rc": 0, "start": "2023-09-06 11:30:54.661921", "stderr": "the input device is not a TTY", "stderr_lines": [ "the input device is not a TTY" ], "stdout": "", "stdout_lines": [] } Example with -tt in the ansible_ssh_common_args 1607836 1693992806.87791: stdout chunk (state=3): >>>Python 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2 Type "help", "copyright", "credits" or "license" for more information. <<< 1607836 1693992806.88345: stdout chunk (state=3): >>>ESC[?1034h>>> ... ... >>> ... ... >>> >>> >>> >>> <<< 1607836 1693992806.89308: stdout chunk (state=3): >>>>>> >>> >>> >>> >>> >>> ... ... ... ... ... >>> File "<stdin>", line 1 return content ^ IndentationError: unexpected indent >>> >>> >>> ... ... >>> File "<stdin>", line 1 if hasattr(platform, 'dist'): ^ IndentationError: unexpected indent >>> File "<stdin>", line 1 result[ 'platform_dist_result'] = platform.dist() ^ IndentationError: unexpected indent >>> >>> File "<stdin>", line 1 osrelease_content = read_utf8_file( '/etc/os-release') ^ IndentationError: unexpected indent >>> ... File "<stdin>", line 2 if not osrelease_content: ^ IndentationError: unexpected indent >>> File "<stdin>", line 1 osrelease_content = read_utf8_file( '/usr/lib/os-release') ^ IndentationError: unexpected indent >>> >>> File "<stdin>", line 1 result['osrelease_content'] = osrelease_content ^ IndentationError: unexpected indent >>> >>> File "<stdin>", line 1 return result ^ IndentationError: unexpected indent >>> >>> >>> ... ... >>> File "<stdin>", line 1 print(json.dumps(info)) ^ IndentationError: unexpected indent >>> >>> >>> ... ... <<< 1607836 1693992881.03244: _low_level_execute_command(): starting 1607836 1693992881.03257: _low_level_execute_command(): executing: /bin/sh -c 'rm -f -r /home/test2/.ansible/tmp/ansible-tmp-1693992806.503195-1607836-118059838868414/ > /dev/null 2>&1 && sleep 0' <** dest ip **> ESTABLISH SSH CONNECTION FOR USER: test2 <** dest ip **> SSH: ansible.cfg set ssh_args: (-C)(-o)(ControlMaster=auto)(-o)(ControlPersist=60s) <** dest ip **> SSH: ANSIBLE_REMOTE_PORT/remote_port/ansible_port set: (-o)(Port=22) <** dest ip **> SSH: ANSIBLE_PRIVATE_KEY_FILE/private_key_file/ansible_ssh_private_key_file set: (-o)(IdentityFile="/home/test/.ssh/id_rsa") <** dest ip **> SSH: ansible_password/ansible_ssh_password not set: (-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no) <** dest ip **> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u set: (-o)(User="test2") 1607829 1693992881.03295: RUNNING CLEANUP <** dest ip **> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10) Is it really about the -tt attribute? Or is there a python issue? I might get beaten by this but I recall that it worked a few weeks before when I tried it but now it doesn’t anymore. No one touched the servers in the meantime. After the script part worked I started to comment it and try to get the file copy part working. I guess I edited it to often. “tool” runs perfectly fine when started directly on the destination. -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/18cb22b1-bb90-4a62-a1e7-30761e25bb67n%40googlegroups.com.