mirror of
https://github.com/trailofbits/algo.git
synced 2025-09-25 05:05:28 +02:00
* Fix Ansible 12 double-templating and Jinja2 spacing issues This PR fixes critical deployment issues and improves code consistency for Ansible 12 compatibility. ## Fixed Issues ### 1. Double-templating bug (Issue #14835) Fixed 7 instances of invalid double-templating that breaks deployments: - Changed `{{ lookup('file', '{{ var }}') }}` to `{{ lookup('file', var) }}` - Affects Azure, DigitalOcean, GCE, Linode, and IPsec configurations - Added comprehensive test to prevent regression ### 2. Jinja2 spacing inconsistencies Fixed 33+ spacing issues for better code quality: - Removed spaces between Jinja2 blocks: `}} {%` → `}}{%` - Fixed operator spacing: `int -1` → `int - 1` - Fixed filter spacing: `|b64encode` → `| b64encode` - Consolidated multiline expressions to single lines ### 3. Test suite improvements Enhanced boolean type checking test to be more targeted: - Excludes external dependencies and CloudFormation templates - Only tests Algo's actual codebase - Verified with mutation testing - Added comprehensive documentation ## Testing - All 87 unit tests pass - 0 Jinja2 spacing issues remaining (verified by ansible-lint) - Ansible syntax checks pass for all playbooks - Mutation testing confirms tests catch real issues 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Python linting issue - Remove unnecessary f-string prefix where no placeholders are used - Fixes ruff F541 error * Fix line length linting issues - Break long lines to stay within 120 character limit - Extract variables for better readability - Fixes ruff E501 errors --------- Co-authored-by: Claude <noreply@anthropic.com>
44 lines
1.2 KiB
YAML
44 lines
1.2 KiB
YAML
#cloud-config
|
|
# CRITICAL: The above line MUST be exactly "#cloud-config" (no space after #)
|
|
# This is required by cloud-init's YAML parser. Adding a space breaks parsing
|
|
# and causes all cloud-init directives to be skipped, resulting in SSH timeouts.
|
|
# See: https://github.com/trailofbits/algo/issues/14800
|
|
output: {all: '| tee -a /var/log/cloud-init-output.log'}
|
|
|
|
package_update: true
|
|
package_upgrade: true
|
|
|
|
packages:
|
|
- sudo
|
|
{% if performance_preinstall_packages | default(false) %}
|
|
# Universal tools always needed by Algo (performance optimization)
|
|
- git
|
|
- screen
|
|
- apparmor-utils
|
|
- uuid-runtime
|
|
- coreutils
|
|
- iptables-persistent
|
|
- cgroup-tools
|
|
{% endif %}
|
|
|
|
users:
|
|
- default
|
|
- name: algo
|
|
homedir: /home/algo
|
|
sudo: ALL=(ALL) NOPASSWD:ALL
|
|
groups: adm,netdev
|
|
shell: /bin/bash
|
|
lock_passwd: true
|
|
ssh_authorized_keys:
|
|
- "{{ lookup('file', SSH_keys.public) }}"
|
|
|
|
write_files:
|
|
- path: /etc/ssh/sshd_config
|
|
content: |
|
|
{{ lookup('template', 'files/cloud-init/sshd_config') | indent(width=6, first=True) }}
|
|
|
|
runcmd:
|
|
- set -x
|
|
- ufw --force reset
|
|
- sudo apt-get remove -y --purge sshguard || true
|
|
- systemctl restart sshd.service
|