From 651e486e8d5ef181b6ac3540e79b1366b31ddae0 Mon Sep 17 00:00:00 2001 From: yashdeep Date: Wed, 21 Jan 2026 16:27:39 +0530 Subject: [PATCH 1/4] chore: fixing erlang_gpg_key_checksum --- packer/linux/ansible/group_vars/all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packer/linux/ansible/group_vars/all.yml b/packer/linux/ansible/group_vars/all.yml index 5c28a27..a294438 100644 --- a/packer/linux/ansible/group_vars/all.yml +++ b/packer/linux/ansible/group_vars/all.yml @@ -8,7 +8,7 @@ docker_apt_repository: "deb [arch=amd64] https://download.docker.com/linux/{{ an docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg" yq_url: "https://github.com/mikefarah/yq/releases/download/v4.16.2/yq_linux_amd64" erlang_gpg_key_url: https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA -erlang_gpg_key_checksum: "f06ccb0568a012e751e276c15b733494147fbb0663c79ab77f3574def4767f99" +erlang_gpg_key_checksum: "b78771a394c747e0e72a26a558277edd6869d9cd8a963bdbc57efbe11b59f08d" erlang_gpg_key_path: /usr/share/keyrings/com.rabbitmq.team.gpg erlang_gpg_key_source_path: "{{ erlang_gpg_key_path }}.asc" erlang_repo_mirrors: From 9b3d969f4c05fa8d9bb6b563d665fab94e6c192e Mon Sep 17 00:00:00 2001 From: yashdeep Date: Wed, 21 Jan 2026 21:03:52 +0530 Subject: [PATCH 2/4] feat(packer/linux): add multi-arch support for ARM64 builds Add architecture mappings to dynamically select correct download URLs based on ansible_architecture fact. This enables building AMIs on both AMD64 (x86_64) and ARM64 (aarch64) instances. Affected components: - CloudWatch agent - Semaphore agent - AWS CLI - Docker apt repository - yq tool --- packer/linux/ansible/group_vars/all.yml | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packer/linux/ansible/group_vars/all.yml b/packer/linux/ansible/group_vars/all.yml index a294438..b8c4745 100644 --- a/packer/linux/ansible/group_vars/all.yml +++ b/packer/linux/ansible/group_vars/all.yml @@ -1,12 +1,24 @@ --- agent_root_dir: "/opt/semaphore/agent" agent_hooks_dir: "{{ agent_root_dir }}/hooks" -agent_url: "https://github.com/semaphoreci/agent/releases/download/{{ agent_version }}/agent_Linux_x86_64.tar.gz" + +# Architecture mappings (ansible_architecture returns x86_64 or aarch64) +arch_map: + x86_64: "x86_64" + aarch64: "arm64" +arch_map_deb: + x86_64: "amd64" + aarch64: "arm64" +arch_map_awscli: + x86_64: "x86_64" + aarch64: "aarch64" + +agent_url: "https://github.com/semaphoreci/agent/releases/download/{{ agent_version }}/agent_Linux_{{ arch_map[ansible_architecture] }}.tar.gz" awscli_version: "2.4.9" -awscli_url: "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-{{ awscli_version }}.zip" -docker_apt_repository: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable" +awscli_url: "https://awscli.amazonaws.com/awscli-exe-linux-{{ arch_map_awscli[ansible_architecture] }}-{{ awscli_version }}.zip" +docker_apt_repository: "deb [arch={{ arch_map_deb[ansible_architecture] }}] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable" docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg" -yq_url: "https://github.com/mikefarah/yq/releases/download/v4.16.2/yq_linux_amd64" +yq_url: "https://github.com/mikefarah/yq/releases/download/v4.16.2/yq_linux_{{ arch_map_deb[ansible_architecture] }}" erlang_gpg_key_url: https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA erlang_gpg_key_checksum: "b78771a394c747e0e72a26a558277edd6869d9cd8a963bdbc57efbe11b59f08d" erlang_gpg_key_path: /usr/share/keyrings/com.rabbitmq.team.gpg @@ -17,6 +29,6 @@ erlang_repo_mirrors: erlang_package_specs: # Pin Erlang 26.2.5.13 across all Ubuntu releases for consistent builds. default: erlang-base=1:26.2.5.13-1 -cloudwatch_agent_url: https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb +cloudwatch_agent_url: "https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/{{ arch_map_deb[ansible_architecture] }}/latest/amazon-cloudwatch-agent.deb" systemd_restart_seconds: 300 apt_hold_patterns: [] From ac96f99c580cc305f984942e3016642e190597b4 Mon Sep 17 00:00:00 2001 From: yashdeep Date: Fri, 23 Jan 2026 11:28:54 +0530 Subject: [PATCH 3/4] feat(packer/linux): support arm64 architecture in erlang repo config --- packer/linux/ansible/roles/erlang/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packer/linux/ansible/roles/erlang/tasks/main.yml b/packer/linux/ansible/roles/erlang/tasks/main.yml index ab44394..b4beba6 100644 --- a/packer/linux/ansible/roles/erlang/tasks/main.yml +++ b/packer/linux/ansible/roles/erlang/tasks/main.yml @@ -21,7 +21,7 @@ - name: "Add repository to APT sources list" ansible.builtin.apt_repository: repo: >- - deb [arch=amd64 signed-by={{ erlang_gpg_key_path }}] + deb [arch={{ 'amd64' if ansible_architecture == 'x86_64' else 'arm64' }} signed-by={{ erlang_gpg_key_path }}] {{ item }}/rabbitmq-erlang/{{ ansible_distribution | lower }}/{{ ansible_distribution_release }} {{ ansible_distribution_release }} main state: present From 79e89ca9c84db25077cc5118979962b8ef6bca49 Mon Sep 17 00:00:00 2001 From: yashdeep Date: Sat, 24 Jan 2026 10:17:31 +0530 Subject: [PATCH 4/4] fix(packer/linux): fix line length violation in docker_apt_repository --- packer/linux/ansible/group_vars/all.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packer/linux/ansible/group_vars/all.yml b/packer/linux/ansible/group_vars/all.yml index b8c4745..96ca1da 100644 --- a/packer/linux/ansible/group_vars/all.yml +++ b/packer/linux/ansible/group_vars/all.yml @@ -16,7 +16,10 @@ arch_map_awscli: agent_url: "https://github.com/semaphoreci/agent/releases/download/{{ agent_version }}/agent_Linux_{{ arch_map[ansible_architecture] }}.tar.gz" awscli_version: "2.4.9" awscli_url: "https://awscli.amazonaws.com/awscli-exe-linux-{{ arch_map_awscli[ansible_architecture] }}-{{ awscli_version }}.zip" -docker_apt_repository: "deb [arch={{ arch_map_deb[ansible_architecture] }}] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable" +docker_apt_repository: >- + deb [arch={{ arch_map_deb[ansible_architecture] }}] + https://download.docker.com/linux/{{ ansible_distribution | lower }} + {{ ansible_distribution_release }} stable docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg" yq_url: "https://github.com/mikefarah/yq/releases/download/v4.16.2/yq_linux_{{ arch_map_deb[ansible_architecture] }}" erlang_gpg_key_url: https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA