Skip to content

the "Run Ansible Playbooks via" function fails when using venv #2564

@huangsijun17

Description

@huangsijun17

Summary

For compatibility with different python versions of the controlled machine, I installed multiple ansible installations using python's venv. However, when I run the playbook with this plugin, venv does not take precedence over script loading. This causes the script to fail to run.

log:

ansible-playbook  /home/huang/ansible/test/test.yaml
❯ ansible-playbook  /home/huang/ansible/test/test.yaml
ansible-playbook: 搜索中 ... 
Warning: incomplete repos found but could not refresh - try to refresh manually, e.g. with 'zypper refresh'.
                            
The program 'ansible-playbook' can be found in following packages:
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (https-download.opensuse.org-9cd6d2a9) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (https-download.opensuse.org-aee5495d) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-backports-update) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-oss) ]
  * ansible [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-sle-update) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-sle-update) ]

试着使用下面命令安装:
    sudo zypper install <所选软件包>

❯ source /home/huang/ansible/test/.venv/bin/activate

Please note that the source command here is executed by vscode itself.

Extension version

26.1.3

VS Code version

1.109.0

Ansible Version

❯ ansible --version
ansible [core 2.18.13]
  config file = None
  configured module search path = ['/home/huang/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/huang/ansible/test/.venv/lib64/python3.12/site-packages/ansible
  ansible collection location = /home/huang/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/huang/ansible/test/.venv/bin/ansible
  python version = 3.12.12 (main, Nov 19 2025, 20:39:39) [GCC] (/home/huang/ansible/test/.venv/bin/python3.12)
  jinja version = 3.1.6
  libyaml = True
❯ python --version
Python 3.12.12
❯ which python
/home/huang/ansible/test/.venv/bin/python
❯ which ansible
/home/huang/ansible/test/.venv/bin/ansible

OS / Environment

❯ fastfetch
                 .-++:.                     huang@huangsijun-nuc11
               ./oooooo/-                   ----------------------
            `:oooooooooooo:.                OS: openSUSE Leap 15.6 x86_64
          -+oooooooooooooooo+-`             Host: NUC11DBBi9 (M17026-402)
       ./oooooooooooooooooooooo/-           Kernel: 6.4.0-150600.23.78-default
      :oooooooooooooooooooooooooo:          Uptime: 1 day, 23 hours, 58 mins
    `  `-+oooooooooooooooooooo/-   `        Packages: 4443 (rpm), 16 (flatpak-system), 11 (flatp)
 `:oo/-   .:ooooooooooooooo+:`  `-+oo/.     Shell: zsh 5.8.1
`/oooooo:.   -/oooooooooo/.   ./oooooo/.    Display (DELL S2721DS): 1440x2560 @ 75Hz (as 720x128)
  `:+ooooo+-`  `:+oooo+-   `:oooooo+:`      DE: KDE Plasma 6.4.4
     .:oooooo/.   .::`   -+oooooo/.         WM: KWin (Wayland)
        -/oooooo:.    ./oooooo+-            WM Theme: Breeze
          `:+ooooo+-:+oooooo:`              Theme: Breeze (Classic) [QT], Breeze [GTK2/3]
             ./oooooooooo/.                 Icons: breeze [QT], breeze [GTK2/3/4]
                -/oooo+:`                   Font: Noto Sans (10pt) [QT], Noto Sans (10pt) [GTK2/]
                  `:/.                      Cursor: breeze (24px)
                                            Terminal: code 1.109.0
                                            CPU: 11th Gen Intel(R) Core(TM) i9-11900KB (16) @ 5 z
                                            GPU: Intel UHD Graphics
                                            Memory: 36.41 GiB / 62.33 GiB (58%)
                                            Disk (/): 375.07 GiB / 1.82 TiB (20%) - btrfs
                                            Locale: zh_CN.UTF-8

                                            ████████████████████████
                                            ████████████████████████

Relevant log output

ansible-playbook  /home/huang/ansible/test/test.yaml
❯ ansible-playbook  /home/huang/ansible/test/test.yaml
ansible-playbook: 搜索中 ... 
Warning: incomplete repos found but could not refresh - try to refresh manually, e.g. with 'zypper refresh'.
                            
The program 'ansible-playbook' can be found in following packages:
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (https-download.opensuse.org-9cd6d2a9) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (https-download.opensuse.org-aee5495d) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-backports-update) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-oss) ]
  * ansible [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-sle-update) ]
  * ansible-core [ path: /usr/bin/ansible-playbook, repository: zypp (mirror-sle-update) ]

试着使用下面命令安装:
    sudo zypper install <所选软件包>source /home/huang/ansible/test/.venv/bin/activate

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions