Ansible 不再有效

Stu*_*urm 6 python linux ansible windows-subsystem-for-linux

我一直在通过 WSL(使用 Pengwin,一个基于 Debian 的 Linux)在 Windows 10 上学习 Ansible,直到昨晚它一直运行良好。今天早上,就好像它不存在了:

? ansible
Traceback (most recent call last):
  File "/usr/bin/ansible", line 34, in <module>
    from ansible import context
ModuleNotFoundError: No module named 'ansible'
Run Code Online (Sandbox Code Playgroud)

几乎没有自昨晚以来变化。甚至我的电脑也一直开着。唯一的区别是我退出了我的终端程序。

我试过跑步 pengwin-setup以重新安装 Ansible,但问题仍然存在。

最后,我尝试通过 Ansible 自己网站上的说明安装它。然而,事情变得更糟:

? sudo apt install software-properties-common
[sudo] password for sturm:
Reading package lists... Done
Building dependency tree
Reading state information... Done
software-properties-common is already the newest version (0.96.20.2-2.1).
0 upgraded, 0 newly installed, 0 to remove and 85 not upgraded.

? sudo apt-add-repository --yes --update ppa:ansible/ansible
gpg: keybox '/tmp/tmpg2r1t8x7/pubring.gpg' created
gpg: /tmp/tmpg2r1t8x7/trustdb.gpg: trustdb created
gpg: key 93C4A3FD7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no valid OpenPGP data found.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 688, in addkey_func
    func(**kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 386, in add_key
    return apsk.add_ppa_signing_key()
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 273, in add_ppa_signing_key
    cleanup(tmp_keyring_dir)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 234, in cleanup
    shutil.rmtree(tmp_keyring_dir)
  File "/usr/lib/python3.8/shutil.py", line 715, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib/python3.8/shutil.py", line 672, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/usr/lib/python3.8/shutil.py", line 670, in _rmtree_safe_fd
    os.unlink(entry.name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.extra'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 570, in update
    res = self._cache.update(fetch_progress, slist,
apt_pkg.Error: E:The repository 'http://ppa.launchpad.net/ansible/ansible/ubuntu groovy Release' does not have a Release file.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/apt-add-repository", line 168, in <module>
    if not sp.add_source_from_shortcut(shortcut, options.enable_source):
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 759, in add_source_from_shortcut
    cache.update(sources_list=new_debsrc_entry.file)
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 573, in update
    raise FetchFailedException(e)
apt.cache.FetchFailedException: E:The repository 'http://ppa.launchpad.net/ansible/ansible/ubuntu groovy Release' does not have a Release file.
Run Code Online (Sandbox Code Playgroud)

现在我别无选择。如何让 Ansible 再次运行?

β.ε*_*.βε 5

您的问题来自这样一个事实:您正在使用说明在 Ubuntu 发行版上安装 Ansible,而正如您所说,Pengwin 是基于 Debian 的发行版。

\n\n

因此,您应该使用有关如何在 Debian 上安装 Ansible 的章节,而不是 如何在 Ubuntu 上安装 Ansible

\n\n

更好的是,因为 Pengwin 是一个非常特殊的发行版,因为它是 WSL 发行版,所以您可能想尝试通过以下方式安装pip

\n\n
\n

pipAnsible 可以与Python 包管理器一起安装。如果 pip您的 Python 系统上\n 尚未提供\n\n\n\xe2\x80\x99,请运行\n 以下命令来安装它:

\n\n
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py\n$ python get-pip.py --user\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后安装 Ansible:

\n\n
$ pip install --user ansible\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-with-pip

\n