如何解决Ansible中的回溯错误Python版本不匹配?
运行以下命令时出现回溯错误
ansible-playbook -i hosts fmg-playbooks/01_add_model_device.yml
我正在运行Ansible 2.9和Python 3.6.5
ansible 2.9.11
config file = /home/alice/ansible/ansible.cfg
configured module search path = ['/home/alice/.ansible/plugins/modules','/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.6.5 (default,Apr 1 2018,05:46:30) [GCC 7.3.0]
我收到有关Python版本的警告
TASK [Gathering Facts] ***************************************************************************************************************************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host fmg01 should use /usr/bin/python3,but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future Ansible release
will default to using the discovered platform python for this host. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. This feature will be
removed in version 2.12. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [fmg01]
然后当我尝试添加设备时,出现回溯错误
TASK [Add model device] **************************************************************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback,use -vvv. The error was: ansible.module_utils.connection.ConnectionError: Method not found
fatal: [fmg01]: FAILED! => {"changed": false,"module_stderr": "Traceback (most recent call last):\n File \"/home/alice/.ansible/tmp/ansible-local-123199visyis5f/ansible-tmp-1598231721.9686775-123291-130397920449540/AnsiballZ_fmgr_dvm_cmd_add_device.py\",line 102,in <module>\n _ansiballz_main()\n File \"/home/alice/.ansible/tmp/ansible-local-123199visyis5f/ansible-tmp-1598231721.9686775-123291-130397920449540/AnsiballZ_fmgr_dvm_cmd_add_device.py\",line 94,in _ansiballz_main\n invoke_module(zipped_mod,temp_path,ANSIBALLZ_PARAMS)\n File \"/home/alice/.ansible/tmp/ansible-local-123199visyis5f/ansible-tmp-1598231721.9686775-123291-130397920449540/AnsiballZ_fmgr_dvm_cmd_add_device.py\",line 40,in invoke_module\n runpy.run_module(mod_name='ansible_collections.fortinet.fortimanager.plugins.modules.fmgr_dvm_cmd_add_device',init_globals=None,run_name='__main__',alter_sys=True)\n File \"/usr/lib/python2.7/runpy.py\",line 188,in run_module\n fname,loader,pkg_name)\n File \"/usr/lib/python2.7/runpy.py\",line 82,in _run_module_code\n mod_name,mod_fname,mod_loader,line 72,in _run_code\n exec code in run_globals\n File \"/tmp/ansible_fmgr_dvm_cmd_add_device_payload_3LmHxl/ansible_fmgr_dvm_cmd_add_device_payload.zip/ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_dvm_cmd_add_device.py\",line 362,in <module>\n File \"/tmp/ansible_fmgr_dvm_cmd_add_device_payload_3LmHxl/ansible_fmgr_dvm_cmd_add_device_payload.zip/ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_dvm_cmd_add_device.py\",line 345,in main\n File \"/tmp/ansible_fmgr_dvm_cmd_add_device_payload_3LmHxl/ansible_fmgr_dvm_cmd_add_device_payload.zip/ansible_collections/fortinet/fortimanager/plugins/module_utils/fortimanager.py\",line 62,in __init__\n File \"/tmp/ansible_fmgr_dvm_cmd_add_device_payload_3LmHxl/ansible_fmgr_dvm_cmd_add_device_payload.zip/ansible_collections/fortinet/fortimanager/plugins/module_utils/fortimanager.py\",line 65,in process_workspace_lock\n File \"/tmp/ansible_fmgr_dvm_cmd_add_device_payload_3LmHxl/ansible_fmgr_dvm_cmd_add_device_payload.zip/ansible/module_utils/connection.py\",line 185,in __rpc__\nansible.module_utils.connection.ConnectionError: Method not found\n","module_stdout": "","msg": "MODULE FAILURE\nSee stdout/stderr for the exact error","rc": 1}
使用错误的Python解释器,这可能是Ansible的问题吗?我可以强迫它使用与2.7不同的密码吗?
解决方法
Python版本还可以。原来这是端口问题。我在主机文件中切换到443,它开始工作。
using System;
using System.Text;
using System.Collections.Generic;
public class Program
{
//static Random seed = new Random();
public static void Main(string[] arggs)
{
Random seed = new Random();
const string src = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Console.WriteLine(src.Length);
int string_length = 2;
List<string> all_message = new List<string>();
string check = "";
do
{
//Random seed = new Random();
int i = 0;
StringBuilder message = new StringBuilder();
for (int j = 0; j < string_length; j++)
{
char c = src[seed.Next(0,src.Length)];
message.Append(c);
}
all_message.Add(message.ToString());
check = all_message.ToString();
Console.WriteLine(i + " = " + all_message[i]);
i++;
}
while (check != "ab");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。