Alex Willmer
9609437262
CI: Use 2025.02 test images, keeping same OS releases
...
centos8-test:2025.02 no longer has a /usr/bin/python installed, so use
centos8-py3 target which sets `ansible_python_interpreter=/usr/bin/python3` in
the templated inventory.
Ansible <= 9 (ansible-core <= 2.6) now discover the interpreter as
/usr/bin/python3 on debian11-test:2025.02, as opposed to
/usr/bin/python3.9 on debian11-test:2021. I'm don't know the exact
cause. From manual tests the change in observed behaviour appears to be common to
vanilla Ansible (strategy=linear) and Mitogen flavour
(strategy=mitogen_linear).
```console
(ans9) ➜ mitogen git:(4efb7158) ✗ ANSIBLE_STRATEGY=mitogen_linear ANSIBLE_STRATEGY_PLUGINS=ansible_mitogen/plugins/strategy ans9/bin/ansible -e ansible_python_interpreter=auto -mping d11.lan
d11.lan | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
(ans9) ➜ mitogen git:(4efb7158) ✗ ans9/bin/ansible -e ansible_python_interpreter=auto -mping d11.lan
d11.lan | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
```
Update some tests which assume `/usr/bin/python` exists or that `env python`
will resolve successfully.
1 week ago
Alex Willmer
7eabcc61c1
tests: Only test doas on targets with doas binary installed
1 week ago
Alex Willmer
017de4c8e1
Merge pull request #1254 from moreati/issue1118-update-containers
...
CI: Build newer test images
1 week ago
Alex Willmer
7996a03a37
ci: Bootstrap Debian like containers with python-apt or python3-apt
...
The Ansible apt module requires it
1 week ago
Alex Willmer
5b6b076c4e
ci: Avoid ansible_virtualization_type to check for docker targets
...
It's not consistant across Ansible versions, particular the oldest ones. This
may have contributed to older test images containing usernames from the host
OS that they were built on (e.g. dmw, alex).
1 week ago
Alex Willmer
4ecafc564d
ci: Use command: true as noop handler
...
meta: noop failed on older Ansibles (e.g. 2.3)
1 week ago
Alex Willmer
56dce28906
ci: Dont show arguments in task name during image prep
...
A bit to noisy for my taste
1 week ago
Alex Willmer
ff973775ce
ci: Push new container images to GitHub Container Registry
1 week ago
Alex Willmer
5ffdbb5999
ci: Add Alma 9, Debian 12, Ubuntu 22.04, & Ubuntu 24.04 to image prep
1 week ago
Alex Willmer
01e24f9ddf
ci: Use highest supported Ansible version during image prep
...
It was necessary to split setup.yml because there is no common subset of
supported include/import keywords across Ansible 2.3 - 2.11. The yaml stdout
callback is unavailabe in Ansible 2.3.
1 week ago
Alex Willmer
22e7046cf6
ci: Run image-prep as fast as possible
...
Mitogen maintainer(s) got better laptops in the last decaade or so.
1 week ago
Alex Willmer
cc8a39864d
ci: Only install default Python 3.x during image prep
...
Newer images will shortly be generated, so these higher Python versions aren't
needed anymore.
1 week ago
Alex Willmer
40fbfe58fc
ci: Install doas package during image prep, delete vendored doas
...
Debian 11 is the earliest Debian release with such a package. Ubuntu first
included it in 22.04 CentOS doesn't have it.
1 week ago
Alex Willmer
b353980699
ci: Tighten Ansible error checking during image prep
1 week ago
Alex Willmer
3fe9b9bd87
ci: Install setfacl for vanilla Ansible unprivileged become
1 week ago
Alex Willmer
cfbb7f884e
ci: Add playbook to configure container host for image prep
1 week ago
Alex Willmer
a1b5d4941e
ci: Use upstream base images for image prep
...
This eliminates use of third-party *-vault images and performs repository
config during image prep.
The Apache httpd proxy is necessary because https://vault.centos.org now only
accepts TLS 1.x connections, and CentOS 5 can only do upto SSL 3.0. It is
developed to run on Debian 11.
1 week ago
Alex Willmer
e32c90a63e
ci: Factor out package installation role
1 week ago
Alex Willmer
a143787c02
ci: Handle custom package repositories in bootstrap role
1 week ago
Alex Willmer
bcc726d3b7
ci: Handle dnf packages in bootstrap role
1 week ago
Alex Willmer
780f8af1a4
ci: Factor out image prep bootstrap as a role
...
Promoting the script to a full template will fix some whitespace errors later.
1 week ago
Alex Willmer
d1c4217db0
ci: Wait for fresh image prep containers to start
1 week ago
Alex Willmer
09b972e96e
ci: Fix ansible-lint complaints in image prep playbooks
1 week ago
Alex Willmer
509c572682
Merge pull request #1368 from moreati/prepare-v0.3.33
...
Prepare v0.3.33
2 weeks ago
Alex Willmer
c9eb6e54e2
Begin 0.3.34dev
2 weeks ago
Alex Willmer
4a442f503e
Prepare v0.3.33
2 weeks ago
Alex Willmer
e52132c89b
Merge pull request #1367 from moreati/ansible13
...
Test/fix Ansible 13 (ansible-core 2.20) support
2 weeks ago
Alex Willmer
f966b3e5c6
CI: Remove lingering stdout_callback=yaml in macOS jobs
...
Support removed in Ansible 13 (ansible-core 2.20).
refs #1285 , #1291
2 weeks ago
Alex Willmer
7c9c38325d
ansible_mitogen: Ansible 13 (ansible-core 2.20) support
2 weeks ago
Alex Willmer
5da56f577c
CI: Use non-rc Python 3.14 releases
...
Left over from Python 3.14 support work.
2 weeks ago
Alex Willmer
734047e1cc
CI: Remove Ansible 11 (ansible-core 2.18) strategy=linear jobs
...
I believe I kep them as a reference during Ansible 12 fixups. No longer needed
and they slow down CI runs.
2 weeks ago
Alex Willmer
8b29846990
Merge pull request #1365 from moreati/prepare-v0.3.32
...
Prepare v0.3.32
2 weeks ago
Alex Willmer
61a7fa1fee
Begin 0.3.33dev
2 weeks ago
Alex Willmer
28ea4780db
Prepare v0.3.32
2 weeks ago
Alex Willmer
36f7cee2d1
Merge pull request #1363 from moreati/issue1362-issue-templates
...
Convert bug issue templates to an issue form
2 weeks ago
Alex Willmer
9a2e600317
chore: Convert bug template to a form
2 weeks ago
Alex Willmer
2cc507a6de
chore: Remove Mitogen 0.2 issue template
...
No longer used
2 weeks ago
Alex Willmer
db63dd1def
Merge pull request #1359 from moreati/issue1260
...
CI: Remove integration of retired lgtm.com
3 weeks ago
Alex Willmer
cab024a6fc
CI: Remove integration of retired lgtm.com
...
Company was aquired by Github in 2019. Service was switched off in Dec 2022,
replaced by GitHub code scanning. Fixes #1260
See
- https://github.blog/news-insights/product-news/the-next-step-for-lgtm-com-github-code-scanning/
3 weeks ago
Alex Willmer
aea028f175
Merge pull request #1357 from moreati/issue1218
...
ansible_mitogen: Remove maximum Ansible version check
3 weeks ago
Alex Willmer
df890459c5
ansible_mitogen: Remove maximum Ansible version check
...
fixes #1218
3 weeks ago
Alex Willmer
847f34c17d
Merge pull request #1243 from moreati/boot-cmd--argv
...
mitogen: Pass first stage, preamble length, and context name in argv
3 weeks ago
Alex Willmer
83c5ab1900
mitogen: Send first stage parameters as argv (796 bytes -> 822)
...
Benefit: The base64 lump is now static for a given Mitogen version, and the
variable parts are more visible. This will make debugging, auditting, and
allow-listing a bit easier.
Potential benefit: generate the base64 once, at build time or startup. Rather
than once per connection.
Cost: Bootstrap command is 26 bytes longer.
```
➜ mitogen git:(boot-cmd--argv) ✗ ./preamble_size.py
SSH command size: 822
Preamble (mitogen.core + econtext) size: 18230 (17.80KiB)
Original Minimized Compressed
mitogen.core 152237 148.7KiB 68453 66.8KiB 45.0% 18130 17.7KiB 11.9%
mitogen.parent 98746 96.4KiB 51215 50.0KiB 51.9% 12922 12.6KiB 13.1%
mitogen.fork 8445 8.2KiB 4139 4.0KiB 49.0% 1652 1.6KiB 19.6%
mitogen.ssh 10847 10.6KiB 6913 6.8KiB 63.7% 2102 2.1KiB 19.4%
mitogen.sudo 12089 11.8KiB 5924 5.8KiB 49.0% 2249 2.2KiB 18.6%
mitogen.select 12325 12.0KiB 2929 2.9KiB 23.8% 964 0.9KiB 7.8%
mitogen.service 41581 40.6KiB 22398 21.9KiB 53.9% 5847 5.7KiB 14.1%
mitogen.fakessh 15753 15.4KiB 8135 7.9KiB 51.6% 2672 2.6KiB 17.0%
mitogen.master 52891 51.7KiB 27586 26.9KiB 52.2% 7129 7.0KiB 13.5%
```
4 weeks ago
Alex Willmer
3b7a75dfaf
mitogen: Send first stage as argv (786 bytes -> 796 bytes)
...
This saves one layer of quoting/quote escaping in the bootstrap command and a
string interpolation per connection. The cost is an increasing the bootstrap
command by 10 bytes. I like the tradeoff. I could be convinced to revert it.
```console
➜ mitogen git:(boot-cmd--argv) ✗ ./preamble_size.py
SSH command size: 796
Preamble (mitogen.core + econtext) size: 18230 (17.80KiB)
Original Minimized Compressed
mitogen.core 152237 148.7KiB 68453 66.8KiB 45.0% 18130 17.7KiB 11.9%
mitogen.parent 99181 96.9KiB 51384 50.2KiB 51.8% 12956 12.7KiB 13.1%
mitogen.fork 8445 8.2KiB 4139 4.0KiB 49.0% 1652 1.6KiB 19.6%
mitogen.ssh 10847 10.6KiB 6913 6.8KiB 63.7% 2102 2.1KiB 19.4%
mitogen.sudo 12089 11.8KiB 5924 5.8KiB 49.0% 2249 2.2KiB 18.6%
mitogen.select 12325 12.0KiB 2929 2.9KiB 23.8% 964 0.9KiB 7.8%
mitogen.service 41581 40.6KiB 22398 21.9KiB 53.9% 5847 5.7KiB 14.1%
mitogen.fakessh 15753 15.4KiB 8135 7.9KiB 51.6% 2672 2.6KiB 17.0%
mitogen.master 52891 51.7KiB 27586 26.9KiB 52.2% 7129 7.0KiB 13.5%
```
4 weeks ago
Alex Willmer
191abd492a
mitogen: Compress first stage without header or checksum (790 bytes -> 786)
...
```console
➜ mitogen git:(boot-cmd--argv) ✗ ./preamble_size.py
SSH command size: 786
Preamble (mitogen.core + econtext) size: 18230 (17.80KiB)
Original Minimized Compressed
mitogen.core 152237 148.7KiB 68453 66.8KiB 45.0% 18130 17.7KiB 11.9%
mitogen.parent 99166 96.8KiB 51375 50.2KiB 51.8% 12957 12.7KiB 13.1%
mitogen.fork 8445 8.2KiB 4139 4.0KiB 49.0% 1652 1.6KiB 19.6%
mitogen.ssh 10847 10.6KiB 6913 6.8KiB 63.7% 2102 2.1KiB 19.4%
mitogen.sudo 12089 11.8KiB 5924 5.8KiB 49.0% 2249 2.2KiB 18.6%
mitogen.select 12325 12.0KiB 2929 2.9KiB 23.8% 964 0.9KiB 7.8%
mitogen.service 41581 40.6KiB 22398 21.9KiB 53.9% 5847 5.7KiB 14.1%
mitogen.fakessh 15753 15.4KiB 8135 7.9KiB 51.6% 2672 2.6KiB 17.0%
mitogen.master 52891 51.7KiB 27586 26.9KiB 52.2% 7129 7.0KiB 13.5%
```
Confirmed Python 2.4 supports this use of zlib.compressobj, despite lack of
mention in https://docs.python.org/2.4/lib/module-zlib.html
```pycon
Python 2.4.6 (#2 , Apr 29 2018, 11:16:24)
[GCC 7.3.0] on linux4
Type "help", "copyright", "credits" or "license" for more information.
>>> import zlib
>>> c=zlib.compressobj(zlib.Z_BEST_COMPRESSION,zlib.DEFLATED,-zlib.MAX_WBITS)
>>> c.compress('qwertyuiop') + c.flush()
'+,O-*\xa9,\xcd\xcc/\x00\x00'
```
4 weeks ago
Alex Willmer
408946adbe
mitogen: Golf 8 bytes from bootstrap first stage (798 -> 790)
...
Before
```
SSH command size: 798
Preamble (mitogen.core + econtext) size: 18230 (17.80KiB)
Original Minimized Compressed
mitogen.core 152237 148.7KiB 68453 66.8KiB 45.0% 18130 17.7KiB 11.9%
mitogen.parent 99020 96.7KiB 51247 50.0KiB 51.8% 12910 12.6KiB 13.0%
mitogen.fork 8445 8.2KiB 4139 4.0KiB 49.0% 1652 1.6KiB 19.6%
mitogen.ssh 10847 10.6KiB 6913 6.8KiB 63.7% 2102 2.1KiB 19.4%
mitogen.sudo 12089 11.8KiB 5924 5.8KiB 49.0% 2249 2.2KiB 18.6%
mitogen.select 12325 12.0KiB 2929 2.9KiB 23.8% 964 0.9KiB 7.8%
mitogen.service 41581 40.6KiB 22398 21.9KiB 53.9% 5847 5.7KiB 14.1%
mitogen.fakessh 15753 15.4KiB 8135 7.9KiB 51.6% 2672 2.6KiB 17.0%
mitogen.master 52891 51.7KiB 27586 26.9KiB 52.2% 7129 7.0KiB 13.5%
```
After
```
SSH command size: 790
Preamble (mitogen.core + econtext) size: 18230 (17.80KiB)
Original Minimized Compressed
mitogen.core 152237 148.7KiB 68453 66.8KiB 45.0% 18130 17.7KiB 11.9%
mitogen.parent 99020 96.7KiB 51247 50.0KiB 51.8% 12903 12.6KiB 13.0%
mitogen.fork 8445 8.2KiB 4139 4.0KiB 49.0% 1652 1.6KiB 19.6%
mitogen.ssh 10847 10.6KiB 6913 6.8KiB 63.7% 2102 2.1KiB 19.4%
mitogen.sudo 12089 11.8KiB 5924 5.8KiB 49.0% 2249 2.2KiB 18.6%
mitogen.select 12325 12.0KiB 2929 2.9KiB 23.8% 964 0.9KiB 7.8%
mitogen.service 41581 40.6KiB 22398 21.9KiB 53.9% 5847 5.7KiB 14.1%
mitogen.fakessh 15753 15.4KiB 8135 7.9KiB 51.6% 2672 2.6KiB 17.0%
mitogen.master 52891 51.7KiB 27586 26.9KiB 52.2% 7129 7.0KiB 13.5%
```
4 weeks ago
Alex Willmer
fdb5c62532
Merge pull request #1353 from moreati/prepare-v0.3.31
...
Prepare v0.3.31
4 weeks ago
Alex Willmer
e4e82f53a1
Begin 0.3.32dev
4 weeks ago
Alex Willmer
77b7a31949
Prepare v0.3.31
4 weeks ago
Alex Willmer
69a5cdce1b
Merge pull request #1352 from moreati/issue1350
...
ansible_mitogen: Fix ModuleNotFoundError: No module named 'ansible_mitogen'
4 weeks ago