diff --git a/ansible/pontos.yml b/ansible/pontos.yml
index 9af5d569cb2a866ed6064f62170416e0286ea779..025ec3bd484f4ee26a276d0a67c9d85577eb5d61 100644
--- a/ansible/pontos.yml
+++ b/ansible/pontos.yml
@@ -5,6 +5,8 @@
     llvm10_state: absent
     llvm11_state: present
     llvm12_state: present
+    llvm16_state: present
+    llvm17_state: absent
     gh_cli_state: present
     postgres_client: true
     nftables:
diff --git a/ansible/roles/llvm_deb/defaults/main.yml b/ansible/roles/llvm_deb/defaults/main.yml
index 0ca2eead65674b59cf88c7c3ab8b44df7f3d3c8c..4455aaa7caaa0d2b255be0dd3bba6334775e7f7c 100644
--- a/ansible/roles/llvm_deb/defaults/main.yml
+++ b/ansible/roles/llvm_deb/defaults/main.yml
@@ -3,3 +3,5 @@ llvm10_state: absent
 llvm11_state: present
 llvm12_state: present
 llvm13_state: present
+llvm16_state: present
+llvm17_state: absent
diff --git a/ansible/roles/llvm_deb/tasks/main.yml b/ansible/roles/llvm_deb/tasks/main.yml
index 0ab2080eaf51497ed7b10166cbdcb257b289f5a0..c0cad9012d3b8260b0ee1e8e79484f86073973ee 100644
--- a/ansible/roles/llvm_deb/tasks/main.yml
+++ b/ansible/roles/llvm_deb/tasks/main.yml
@@ -96,3 +96,76 @@
 #       - libclc-13-dev
 #       # note: libunwind is not installed as it can conflict with system one
 #     state: "{{ llvm13_state }}"
+
+- name: "LLVM 16 repository"
+  apt_repository:
+    repo: deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main
+    filename: llvm16
+    state: present
+
+- name: "LLVM 16 (& tools) {{ llvm16_state }}"
+  apt:
+    default_release: llvm-toolchain-bullseye-16
+    pkg:
+      - libllvm16
+      - llvm-16
+      - llvm-16-dev
+      - llvm-16-doc
+      - llvm-16-examples
+      - llvm-16-runtime
+      - clang-16
+      - clang-tools-16
+      - clang-16-doc
+      - libclang-common-16-dev
+      - libclang-16-dev
+      - libclang1-16
+      - clang-format-16
+      - clangd-16
+      - clang-tidy-16
+      - libfuzzer-16-dev
+      - lldb-16
+      - lld-16
+      - libc++-16-dev
+      - libc++abi-16-dev
+      - libclc-16-dev
+      - mlir-16-tools
+      - libmlir-16-dev
+      # note: libunwind is not installed as it can conflict with system one
+    state: "{{ llvm16_state }}"
+
+
+- name: "LLVM 17 repository"
+  apt_repository:
+    repo: deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-17 main
+    filename: llvm17
+    state: present
+
+- name: "LLVM 17 (& tools) {{ llvm17_state }}"
+  apt:
+    default_release: llvm-toolchain-bullseye-17
+    pkg:
+      - libllvm17
+      - llvm-17
+      - llvm-17-dev
+      - llvm-17-doc
+      - llvm-17-examples
+      - llvm-17-runtime
+      - clang-17
+      - clang-tools-17
+      - clang-17-doc
+      - libclang-common-17-dev
+      - libclang-17-dev
+      - libclang1-17
+      - clang-format-17
+      - clangd-17
+      - clang-tidy-17
+      - libfuzzer-17-dev
+      - lldb-17
+      - lld-17
+      - libc++-17-dev
+      - libc++abi-17-dev
+      - libclc-17-dev
+      - mlir-17-tools
+      - libmlir-17-dev
+      # note: libunwind is not installed as it can conflict with system one
+    state: "{{ llvm17_state }}"