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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/18cb22b1-bb90-4a62-a1e7-30761e25bb67n%40googlegroups.com.

Reply via email to