Comments (5)
Note that removing 'strategy = mitogen_linear' in the config makes it working. Here is the log:
ansible-plain-no-error.txt
from mitogen.
Trying to manually unpickle data seems to work, both on host and target (for the later, I needed to copy mitogen and ansible python packages from host into a separate directory on target and add it to PYTHONPATH)
Here is the simple script (txt extension for upload):
python-test.txt
O host:
$ python3 /tmp/python-test.txt
('eyak-759992-7ffff7c7f040-5a92dd14c9',
'ansible_mitogen.target',
None,
'run_module',
(),
Kwargs({'kwargs': {'runner_name': 'NewStyleRunner', 'module': 'ansible.legacy.systemd', 'path': '/usr/lib/python3/dist-packages/ansible/modules/systemd.py', 'json_args': '{"name": "ntp", "state": "restarted", "_ansible_check_mode": false, "_ansible_no_log": false, "_ansible_debug": false, "_ansible_diff": false, "_ansible_verbosity": 3, "_ansible_version": "2.14.13", "_ansible_module_name": "ansible.legacy.systemd", "_ansible_syslog_facility": "LOG_USER", "_ansible_selinux_special_fs": ["fuse", "nfs", "vboxsf", "ramfs", "9p", "vfat"], "_ansible_string_conversion_action": "warn", "_ansible_socket": null, "_ansible_shell_executable": "/bin/sh", "_ansible_keep_remote_files": false, "_ansible_tmpdir": null, "_ansible_remote_tmp": "/root/.ansible/tmp"}', 'env': {}, 'interpreter_fragment': None, 'is_python': None, 'module_map': {'builtin': ['ansible.module_utils._text', 'ansible.module_utils.basic', 'ansible.module_utils.common', 'ansible.module_utils.common._collections_compat', 'ansible.module_utils.common._json_compat', 'ansible.module_utils.common._utils', 'ansible.module_utils.common.arg_spec', 'ansible.module_utils.common.collections', 'ansible.module_utils.common.file', 'ansible.module_utils.common.locale', 'ansible.module_utils.common.parameters', 'ansible.module_utils.common.process', 'ansible.module_utils.common.sys_info', 'ansible.module_utils.common.text', 'ansible.module_utils.common.text.converters', 'ansible.module_utils.common.text.formatters', 'ansible.module_utils.common.validation', 'ansible.module_utils.common.warnings', 'ansible.module_utils.compat', 'ansible.module_utils.compat._selectors2', 'ansible.module_utils.compat.selectors', 'ansible.module_utils.compat.selinux', 'ansible.module_utils.compat.typing', 'ansible.module_utils.compat.version', 'ansible.module_utils.distro', 'ansible.module_utils.distro._distro', 'ansible.module_utils.errors', 'ansible.module_utils.facts', 'ansible.module_utils.facts.ansible_collector', 'ansible.module_utils.facts.collector', 'ansible.module_utils.facts.compat', 'ansible.module_utils.facts.default_collectors', 'ansible.module_utils.facts.hardware', 'ansible.module_utils.facts.hardware.aix', 'ansible.module_utils.facts.hardware.base', 'ansible.module_utils.facts.hardware.darwin', 'ansible.module_utils.facts.hardware.dragonfly', 'ansible.module_utils.facts.hardware.freebsd', 'ansible.module_utils.facts.hardware.hpux', 'ansible.module_utils.facts.hardware.hurd', 'ansible.module_utils.facts.hardware.linux', 'ansible.module_utils.facts.hardware.netbsd', 'ansible.module_utils.facts.hardware.openbsd', 'ansible.module_utils.facts.hardware.sunos', 'ansible.module_utils.facts.namespace', 'ansible.module_utils.facts.network', 'ansible.module_utils.facts.network.aix', 'ansible.module_utils.facts.network.base', 'ansible.module_utils.facts.network.darwin', 'ansible.module_utils.facts.network.dragonfly', 'ansible.module_utils.facts.network.fc_wwn', 'ansible.module_utils.facts.network.freebsd', 'ansible.module_utils.facts.network.generic_bsd', 'ansible.module_utils.facts.network.hpux', 'ansible.module_utils.facts.network.hurd', 'ansible.module_utils.facts.network.iscsi', 'ansible.module_utils.facts.network.linux', 'ansible.module_utils.facts.network.netbsd', 'ansible.module_utils.facts.network.nvme', 'ansible.module_utils.facts.network.openbsd', 'ansible.module_utils.facts.network.sunos', 'ansible.module_utils.facts.other', 'ansible.module_utils.facts.other.facter', 'ansible.module_utils.facts.other.ohai', 'ansible.module_utils.facts.sysctl', 'ansible.module_utils.facts.system', 'ansible.module_utils.facts.system.apparmor', 'ansible.module_utils.facts.system.caps', 'ansible.module_utils.facts.system.chroot', 'ansible.module_utils.facts.system.cmdline', 'ansible.module_utils.facts.system.date_time', 'ansible.module_utils.facts.system.distribution', 'ansible.module_utils.facts.system.dns', 'ansible.module_utils.facts.system.env', 'ansible.module_utils.facts.system.fips', 'ansible.module_utils.facts.system.loadavg', 'ansible.module_utils.facts.system.local', 'ansible.module_utils.facts.system.lsb', 'ansible.module_utils.facts.system.pkg_mgr', 'ansible.module_utils.facts.system.platform', 'ansible.module_utils.facts.system.python', 'ansible.module_utils.facts.system.selinux', 'ansible.module_utils.facts.system.service_mgr', 'ansible.module_utils.facts.system.ssh_pub_keys', 'ansible.module_utils.facts.system.user', 'ansible.module_utils.facts.timeout', 'ansible.module_utils.facts.utils', 'ansible.module_utils.facts.virtual', 'ansible.module_utils.facts.virtual.base', 'ansible.module_utils.facts.virtual.dragonfly', 'ansible.module_utils.facts.virtual.freebsd', 'ansible.module_utils.facts.virtual.hpux', 'ansible.module_utils.facts.virtual.linux', 'ansible.module_utils.facts.virtual.netbsd', 'ansible.module_utils.facts.virtual.openbsd', 'ansible.module_utils.facts.virtual.sunos', 'ansible.module_utils.facts.virtual.sysctl', 'ansible.module_utils.parsing', 'ansible.module_utils.parsing.convert_bool', 'ansible.module_utils.pycompat24', 'ansible.module_utils.service', 'ansible.module_utils.six'], 'custom': []}, 'py_module_name': 'ansible.modules.systemd', 'good_temp_dir': '/root/.ansible/tmp', 'cwd': None, 'extra_env': None, 'emulate_tty': True, 'service_context': Context(0, None)}}))
- On target:
$ PYTHONPATH=/tmp/python python3 /tmp/python-test
('eyak-759992-7ffff7c7f040-5a92dd14c9',
'ansible_mitogen.target',
None,
'run_module',
(),
{'kwargs': {'cwd': None,
'emulate_tty': True,
'env': {},
'extra_env': None,
'good_temp_dir': '/root/.ansible/tmp',
'interpreter_fragment': None,
'is_python': None,
'json_args': '{"name": "ntp", "state": "restarted", '
'"_ansible_check_mode": false, "_ansible_no_log": '
'false, "_ansible_debug": false, "_ansible_diff": '
'false, "_ansible_verbosity": 3, "_ansible_version": '
'"2.14.13", "_ansible_module_name": '
'"ansible.legacy.systemd", '
'"_ansible_syslog_facility": "LOG_USER", '
'"_ansible_selinux_special_fs": ["fuse", "nfs", '
'"vboxsf", "ramfs", "9p", "vfat"], '
'"_ansible_string_conversion_action": "warn", '
'"_ansible_socket": null, '
'"_ansible_shell_executable": "/bin/sh", '
'"_ansible_keep_remote_files": false, '
'"_ansible_tmpdir": null, "_ansible_remote_tmp": '
'"/root/.ansible/tmp"}',
'module': 'ansible.legacy.systemd',
'module_map': {'builtin': ['ansible.module_utils._text',
'ansible.module_utils.basic',
'ansible.module_utils.common',
'ansible.module_utils.common._collections_compat',
'ansible.module_utils.common._json_compat',
'ansible.module_utils.common._utils',
'ansible.module_utils.common.arg_spec',
'ansible.module_utils.common.collections',
'ansible.module_utils.common.file',
'ansible.module_utils.common.locale',
'ansible.module_utils.common.parameters',
'ansible.module_utils.common.process',
'ansible.module_utils.common.sys_info',
'ansible.module_utils.common.text',
'ansible.module_utils.common.text.converters',
'ansible.module_utils.common.text.formatters',
'ansible.module_utils.common.validation',
'ansible.module_utils.common.warnings',
'ansible.module_utils.compat',
'ansible.module_utils.compat._selectors2',
'ansible.module_utils.compat.selectors',
'ansible.module_utils.compat.selinux',
'ansible.module_utils.compat.typing',
'ansible.module_utils.compat.version',
'ansible.module_utils.distro',
'ansible.module_utils.distro._distro',
'ansible.module_utils.errors',
'ansible.module_utils.facts',
'ansible.module_utils.facts.ansible_collector',
'ansible.module_utils.facts.collector',
'ansible.module_utils.facts.compat',
'ansible.module_utils.facts.default_collectors',
'ansible.module_utils.facts.hardware',
'ansible.module_utils.facts.hardware.aix',
'ansible.module_utils.facts.hardware.base',
'ansible.module_utils.facts.hardware.darwin',
'ansible.module_utils.facts.hardware.dragonfly',
'ansible.module_utils.facts.hardware.freebsd',
'ansible.module_utils.facts.hardware.hpux',
'ansible.module_utils.facts.hardware.hurd',
'ansible.module_utils.facts.hardware.linux',
'ansible.module_utils.facts.hardware.netbsd',
'ansible.module_utils.facts.hardware.openbsd',
'ansible.module_utils.facts.hardware.sunos',
'ansible.module_utils.facts.namespace',
'ansible.module_utils.facts.network',
'ansible.module_utils.facts.network.aix',
'ansible.module_utils.facts.network.base',
'ansible.module_utils.facts.network.darwin',
'ansible.module_utils.facts.network.dragonfly',
'ansible.module_utils.facts.network.fc_wwn',
'ansible.module_utils.facts.network.freebsd',
'ansible.module_utils.facts.network.generic_bsd',
'ansible.module_utils.facts.network.hpux',
'ansible.module_utils.facts.network.hurd',
'ansible.module_utils.facts.network.iscsi',
'ansible.module_utils.facts.network.linux',
'ansible.module_utils.facts.network.netbsd',
'ansible.module_utils.facts.network.nvme',
'ansible.module_utils.facts.network.openbsd',
'ansible.module_utils.facts.network.sunos',
'ansible.module_utils.facts.other',
'ansible.module_utils.facts.other.facter',
'ansible.module_utils.facts.other.ohai',
'ansible.module_utils.facts.sysctl',
'ansible.module_utils.facts.system',
'ansible.module_utils.facts.system.apparmor',
'ansible.module_utils.facts.system.caps',
'ansible.module_utils.facts.system.chroot',
'ansible.module_utils.facts.system.cmdline',
'ansible.module_utils.facts.system.date_time',
'ansible.module_utils.facts.system.distribution',
'ansible.module_utils.facts.system.dns',
'ansible.module_utils.facts.system.env',
'ansible.module_utils.facts.system.fips',
'ansible.module_utils.facts.system.loadavg',
'ansible.module_utils.facts.system.local',
'ansible.module_utils.facts.system.lsb',
'ansible.module_utils.facts.system.pkg_mgr',
'ansible.module_utils.facts.system.platform',
'ansible.module_utils.facts.system.python',
'ansible.module_utils.facts.system.selinux',
'ansible.module_utils.facts.system.service_mgr',
'ansible.module_utils.facts.system.ssh_pub_keys',
'ansible.module_utils.facts.system.user',
'ansible.module_utils.facts.timeout',
'ansible.module_utils.facts.utils',
'ansible.module_utils.facts.virtual',
'ansible.module_utils.facts.virtual.base',
'ansible.module_utils.facts.virtual.dragonfly',
'ansible.module_utils.facts.virtual.freebsd',
'ansible.module_utils.facts.virtual.hpux',
'ansible.module_utils.facts.virtual.linux',
'ansible.module_utils.facts.virtual.netbsd',
'ansible.module_utils.facts.virtual.openbsd',
'ansible.module_utils.facts.virtual.sunos',
'ansible.module_utils.facts.virtual.sysctl',
'ansible.module_utils.parsing',
'ansible.module_utils.parsing.convert_bool',
'ansible.module_utils.pycompat24',
'ansible.module_utils.service',
'ansible.module_utils.six'],
'custom': []},
'path': '/usr/lib/python3/dist-packages/ansible/modules/systemd.py',
'py_module_name': 'ansible.modules.systemd',
'runner_name': 'NewStyleRunner',
'service_context': Context(0, None)}})
Not sure why the layout is not similar on host and target.
from mitogen.
Using the command
module (calling systemd ntp restart
) instead of the service
module (that seems to delegate to the systemd
module) works! Here is the log.
Using the systemd_service
module does not work (same pickle error, log can be provided if needed)
ansible-mitogen-no-error.txt
from mitogen.
Possibly a duplicate of #1034, where you can also find possible work-arounds.
from mitogen.
duplicate of #1034
from mitogen.
Related Issues (20)
- Python 3.12 support HOT 25
- Mitogen broken after ansible security patch for "unsafe variables" HOT 16
- tox.ini: add-apt-repository requires software-properties-common, apt update is unnecessary HOT 1
- ansible.legecy.dnf leave rpmdb locks open HOT 2
- bug mitogen version 0.3.4 with running ansible 2.15 or 2.16 HOT 1
- The attribute 'remote_user' of the object 'connection._play_context' contains the variable name instead of its value. HOT 2
- wait_for_connection times out when using Ansible with mitogen on standard Rocky 8.9 AWS images
- mitogen.utils.cast() can silently fail to cast string subtypes (e.g. AnsibleUnsafeText)
- Test files, documentation source and others missing from source packages
- tests.ansible.tests.MockLinuxPolicyTest is always skipped
- Ansible 9 (ansible-core 2.16) support HOT 1
- DeprecationWarning: 'pkgutil.find_loader' is deprecated and slated for removal in Python 3.14; use importlib.util.find_spec() instead
- Tests pass, but it takes sereral manual retries HOT 1
- Tests are slow to run, 15-20 minutes for individual jobs, 40-60 minutes overall
- Play fails if temp directory is deleted mid-play HOT 8
- EpollPoller registers with mask EPOLLIN, but filters as if also expecting EPOLLHUP
- mitogen.core.Broker ignores poller_class argument
- Hosts added by `add_host` module don't respect `ansible_host_key_checking` variable HOT 5
- Test suite plays with `hosts: localhost` are not run HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mitogen.