Błąd w Ansible: "Not a tty"

0

Witam
Podczas uruchamiania skryptu Andible w CI/CD Gitlaba dostaję taki komunikat:

fatal: [local-test]: UNREACHABLE! => {
    "changed": false,
    "msg": "(25, 'Not a tty')",
    "unreachable": true
}

Jak uruchomić prawidłowo Ansibla w pipeline Gitlabowym ?

1

pokaż gitlab-ci.yml który odpala playbooka

0
test:
  stage: test
  #needs: ["build"]
  before_script:
    - apk add --update git openssh ansible && rm -rf /var/cache/apk/*
    - git clone http://oauth2:[email protected]:xx/xx/xxx/qa/playbook.git
  script:
    - ls
    - echo $VERSION
    - docker images
    - ansible-playbook -vvvv -i playbook/automatic-tests/inventory.yml playbook/automatic-tests/start.yml

i pełny log:

$ ansible-playbook -vvvv -i playbook/automatic-tests/inventory.yml playbook/automatic-tests/start.yml
ansible-playbook [core 2.13.6]
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.10/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible-playbook
  python version = 3.10.10 (main, Feb  9 2023, 02:08:14) [GCC 12.2.1 20220924]
  jinja version = 3.1.2
  libyaml = True
No config file found; using defaults
setting up inventory plugins
host_list declined parsing /builds/xxx/xxx/qa/cicd-test/backend/playbook/automatic-tests/inventory.yml as it did not pass its verify_file() method
script declined parsing /builds/xxx/xxxx/qa/cicd-test/backend/playbook/automatic-tests/inventory.yml as it did not pass its verify_file() method
Parsed /builds/xxxx/xxxxx/qa/cicd-test/backend/playbook/automatic-tests/inventory.yml inventory source with yaml plugin
redirecting (type: modules) ansible.builtin.docker_network to community.docker.docker_network
Loading collection community.docker from /usr/lib/python3.10/site-packages/ansible_collections/community/docker
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_container to community.docker.docker_container
redirecting (type: modules) ansible.builtin.docker_host_info to community.docker.docker_host_info
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python3.10/site-packages/ansible/plugins/callback/default.py
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.
PLAYBOOK: start.yml ************************************************************
Positional arguments: playbook/automatic-tests/start.yml
verbosity: 4
connection: smart
timeout: 10
become_method: sudo
tags: ('all',)
inventory: ('/builds/xxxxxxx/xxxxx/qa/cicd-test/backend/playbook/automatic-tests/inventory.yml',)
forks: 5
1 plays in playbook/automatic-tests/start.yml
PLAY [Create base virtual network] *********************************************
TASK [Gathering Facts] *********************************************************
task path: /builds/xxxxx/xxxxxx/qa/cicd-test/backend/playbook/automatic-tests/start.yml:1
<xx.xx.xx.xx> ESTABLISH PARAMIKO SSH CONNECTION FOR USER: root on PORT 22 TO xx.xxx.xxx.xx
<xx.xxx.xx.xx> CONNECTION: pid 68 waiting for lock on 5
<xx.xx.xx.xx> CONNECTION: pid 68 acquired lock on 5
fatal: [local-test]: UNREACHABLE! => {
    "changed": false,
    "msg": "(25, 'Not a tty')",
    "unreachable": true
}
PLAY RECAP *********************************************************************
local-test                 : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0   
ERROR: Job failed: exit code 4
0

Wyczytałem że można wyłączyć krok Gathering Facts, lecz nic to nie dało. Krok faktycznie jest omijany lecz błąd identyczny wyskakuje przy tworzeniu sieci dokerowej. Zauważyłem ze przeszły kroki które nie angażowały hosta docelowego. Czyli dopóki ansilbe nie wyśle konkretnego polecenia do wykonania.
Czy może to być problem z paramiko ? Takiej właśnie biblioteki używał do łączenia się z hostami w ansible.

1 użytkowników online, w tym zalogowanych: 0, gości: 1