包装机 + 安斯布尔 - "winrm or requests is not installed: No module named 'winrm'"



我正在尝试将Ansible与Packer集成以配置Windows客户端。

从Azure管道运行:

  • Ubuntu最新版本
  • Python 3.8.10
  • ansible[核心2.12.4]
  • 封隔器1.8.0

在管道中,我尝试安装pywinrm

pip install --ignore-installed pywinrm

但当包装机使用Ansible Provisioner:时仍然会收到此错误

==> azure-arm.windowsvm: Waiting for WinRM to become available...
azure-arm.windowsvm: WinRM connected.
==> azure-arm.windowsvm: Connected to WinRM!
==> azure-arm.windowsvm: Provisioning with Ansible...
azure-arm.windowsvm: Not using Proxy adapter for Ansible run:
azure-arm.windowsvm:    Using WinRM Password from Packer communicator...
==> azure-arm.windowsvm: Executing Ansible: ansible-playbook -e packer_build_name="windowsvm" -e packer_builder_type=azure-arm -vvv -e ansible_winrm_server_cert_validation=ignore ansible_python_interpreter=/usr/bin/python3 -e ansible_password=***** -i /tmp/packer-provisioner-ansible141521969 /home/vsts/work/1/s/packer/win10-client/ansible/apb_os.yml
azure-arm.windowsvm: ansible-playbook [core 2.12.4]
azure-arm.windowsvm:   config file = None
azure-arm.windowsvm:   configured module search path = ['/home/vsts/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
azure-arm.windowsvm:   ansible python module location = /opt/pipx/venvs/ansible-core/lib/python3.8/site-packages/ansible
azure-arm.windowsvm:   ansible collection location = /home/vsts/.ansible/collections:/usr/share/ansible/collections
azure-arm.windowsvm:   executable location = /opt/pipx_bin/ansible-playbook
azure-arm.windowsvm:   python version = 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0]
azure-arm.windowsvm:   jinja version = 3.1.1
azure-arm.windowsvm:   libyaml = True
azure-arm.windowsvm: No config file found; using defaults
azure-arm.windowsvm: host_list declined parsing /tmp/packer-provisioner-ansible141521969 as it did not pass its verify_file() method
azure-arm.windowsvm: script declined parsing /tmp/packer-provisioner-ansible141521969 as it did not pass its verify_file() method
azure-arm.windowsvm: auto declined parsing /tmp/packer-provisioner-ansible141521969 as it did not pass its verify_file() method
azure-arm.windowsvm: Parsed /tmp/packer-provisioner-ansible141521969 inventory source with ini plugin
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.win_acl to ansible.windows.win_acl
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.win_acl to ansible.windows.win_acl
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.win_acl to ansible.windows.win_acl
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.win_acl to ansible.windows.win_acl
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.win_acl to ansible.windows.win_acl
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.win_acl to ansible.windows.win_acl
azure-arm.windowsvm: Skipping callback 'default', as we already have a stdout callback.
azure-arm.windowsvm: Skipping callback 'minimal', as we already have a stdout callback.
azure-arm.windowsvm: Skipping callback 'oneline', as we already have a stdout callback.
azure-arm.windowsvm:
azure-arm.windowsvm: PLAYBOOK: apb_os.yml ***********************************************************
azure-arm.windowsvm: 1 plays in /home/vsts/work/1/s/packer/win10-client/ansible/apb_os.yml
azure-arm.windowsvm:
azure-arm.windowsvm: PLAY [Provision Image with OS Config] ******************************************
azure-arm.windowsvm:
azure-arm.windowsvm: TASK [Gathering Facts] *********************************************************
azure-arm.windowsvm: task path: /home/vsts/work/1/s/packer/win10-client/ansible/apb_os.yml:1
azure-arm.windowsvm: redirecting (type: modules) ansible.builtin.setup to ansible.windows.setup
azure-arm.windowsvm: Using module file /opt/pipx/venvs/ansible-core/lib/python3.8/site-packages/ansible_collections/ansible/windows/plugins/modules/setup.ps1
azure-arm.windowsvm: Pipelining is enabled.
azure-arm.windowsvm: fatal: [default]: FAILED! => {
azure-arm.windowsvm:     "msg": "winrm or requests is not installed: No module named 'winrm'"
azure-arm.windowsvm: }
azure-arm.windowsvm:
azure-arm.windowsvm: PLAY RECAP *********************************************************************
azure-arm.windowsvm: default                    : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

这是Packer Ansible Provisioner:

provisioner "ansible" {
playbook_file    = "${var.WorkingDirectory}/packer/win10-client/ansible/apb_os.yml"
user             = "Admin"
use_proxy        = false
extra_arguments  = ["-vvv", "-e", "ansible_winrm_server_cert_validation=ignore ansible_python_interpreter=/usr/bin/python3"]
}

我的点子列表

Package                Version             
---------------------- --------------------
argcomplete            2.0.0               
attrs                  19.3.0              
Automat                0.8.0               
blinker                1.4                 
certifi                2021.10.8           
cffi                   1.15.0              
chardet                3.0.4               
charset-normalizer     2.0.12              
Click                  7.0                 
cloud-init             22.1                
colorama               0.4.3               
command-not-found      0.3                 
configobj              5.0.6               
constantly             15.1.0              
crcmod                 1.7                 
crit                   0.0.1               
cryptography           36.0.2              
dbus-python            1.2.16              
distro                 1.4.0               
distro-info            0.23ubuntu1  
entrypoints            0.3                 
httplib2               0.14.0              
hyperlink              19.0.0              
idna                   3.3                 
importlib-metadata     1.5.0               
incremental            16.10.1             
Jinja2                 2.10.1              
jsonpatch              1.22                
jsonpointer            2.0                 
jsonschema             3.2.0               
keyring                18.0.1        
language-selector      0.1                 
launchpadlib           1.10.13             
lazr.restfulclient     0.14.2              
lazr.uri               1.0.3               
MarkupSafe             1.1.0               
more-itertools         4.2.0               
netifaces              0.10.4              
ntlm-auth              1.5.0               
oauthlib               3.1.0               
packaging              21.3                
pexpect                4.6.0               
pip                    20.0.2              
pipx                   1.0.0               
protobuf               3.6.1               
pyasn1                 0.4.2               
pyasn1-modules         0.2.1               
pycparser              2.21                
Pygments               2.3.1
PyGObject              3.36.0              
PyHamcrest             1.9.0               
PyJWT                  1.7.1               
pymacaroons            0.13.0              
PyNaCl                 1.3.0               
pyOpenSSL              19.0.0              
pyparsing              3.0.7               
pyparted               3.11.2              
pyrsistent             0.15.5              
pyserial               3.4                 
python-apt             2.0.0+ubuntu0.20.4.7
python-debian          0.1.36ubuntu1       
pywinrm                0.4.2               
PyYAML                 5.3.1               
requests               2.27.1              
requests-ntlm          1.1.0               
requests-unixsocket    0.2.0               
SecretStorage          2.3.1               
service-identity       18.1.0              
setuptools             45.2.0              
simplejson             3.16.0              
six                    1.16.0              
sos                    4.3                 
ssh-import-id          5.10                
systemd-python         234                 
Twisted                18.9.0              
ubuntu-advantage-tools 27.6                
ufw                    0.36                
urllib3                1.26.9              
userpath               1.8.0               
wadllib                1.3.3               
WALinuxAgent           2.2.46              
wheel                  0.34.2              
xmltodict              0.12.0              
zipp                   1.0.0               
zope.interface         4.7.1 

任何指向正确方向的指示都将不胜感激-谢谢!

管道正在运行一个虚拟环境,ansible就是在这个环境中查找pywinrm模块的。

我必须通过使用来激活它

/opt/pipx/venv/ansible-core/bin/activate

可靠的提供者确实会告诉你它在哪里寻找这个模块。

一旦激活,我就可以安装丢失的pywinrm模块,并使其正常工作。

或者,您可以创建脚本,使用ansible provisioner的命令属性在venv中创建和安装所有内容。

最新更新