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.

Reply via email to