summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-02-06 21:19:18 +0100
committerAhmed Abdelhalim <[email protected]>2026-02-06 21:19:18 +0100
commit8c6ab86ac1a010030477e17ec2ef5dd7d6237690 (patch)
tree529d9005df6f5fa22453e8822a91ffbfc2abd5b6
parent88c24cbe4fd49d19d73707f4f7db3ea1b25117ca (diff)
Add claude code install role
-rw-r--r--configure.yml1
-rw-r--r--molecule/archlinux-gnome/converge.yml1
-rw-r--r--molecule/archlinux/converge.yml1
-rw-r--r--molecule/debian/converge.yml1
-rw-r--r--molecule/raspberrypi/converge.yml1
-rw-r--r--molecule/ubuntu/converge.yml1
-rw-r--r--roles/claude/meta/argument_specs.yml6
-rw-r--r--roles/claude/meta/main.yml19
-rw-r--r--roles/claude/tasks/main.yml19
9 files changed, 50 insertions, 0 deletions
diff --git a/configure.yml b/configure.yml
index 13b16a55..2ed5c67d 100644
--- a/configure.yml
+++ b/configure.yml
@@ -34,6 +34,7 @@
- role: "neomutt"
- role: "firefox"
- role: "obsidian"
+ - role: "claude"
- role: "alacritty"
- role: "mpv"
- role: "nvidia_gtx1060"
diff --git a/molecule/archlinux-gnome/converge.yml b/molecule/archlinux-gnome/converge.yml
index 72912436..f252c84f 100644
--- a/molecule/archlinux-gnome/converge.yml
+++ b/molecule/archlinux-gnome/converge.yml
@@ -91,3 +91,4 @@
- role: "brightnessctl"
- role: "wiremix"
- role: "nvidia_gtx1060"
+ - role: "claude"
diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml
index c3040888..f8e4fa3a 100644
--- a/molecule/archlinux/converge.yml
+++ b/molecule/archlinux/converge.yml
@@ -91,3 +91,4 @@
- role: "wiremix"
- role: "nvidia_gtx1060"
- role: "hyprland"
+ - role: "claude"
diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml
index aa087b87..43332226 100644
--- a/molecule/debian/converge.yml
+++ b/molecule/debian/converge.yml
@@ -94,3 +94,4 @@
- role: "alacritty"
- role: "btop"
- role: "pipewire"
+ - role: "claude"
diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml
index 294c6a9e..523e233c 100644
--- a/molecule/raspberrypi/converge.yml
+++ b/molecule/raspberrypi/converge.yml
@@ -90,3 +90,4 @@
- role: "alacritty"
- role: "btop"
- role: "pipewire"
+ - role: "claude"
diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml
index 6b5d2b16..c3605d35 100644
--- a/molecule/ubuntu/converge.yml
+++ b/molecule/ubuntu/converge.yml
@@ -83,3 +83,4 @@
- role: "alacritty"
- role: "btop"
- role: "pipewire"
+ - role: "claude"
diff --git a/roles/claude/meta/argument_specs.yml b/roles/claude/meta/argument_specs.yml
new file mode 100644
index 00000000..dcdb9d79
--- /dev/null
+++ b/roles/claude/meta/argument_specs.yml
@@ -0,0 +1,6 @@
+---
+argument_specs:
+ main:
+ short_description: "Install claude.code on Linux distributions"
+ description: "Install claude.code on Linux distributions"
+ options: {}
diff --git a/roles/claude/meta/main.yml b/roles/claude/meta/main.yml
new file mode 100644
index 00000000..7975daa4
--- /dev/null
+++ b/roles/claude/meta/main.yml
@@ -0,0 +1,19 @@
+---
+dependencies:
+ - role: "bash"
+ - role: "curl"
+galaxy_info:
+ author: "a14m"
+ description: "Install claude code on Linux distributions"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
+ - name: "Ubuntu"
+ versions:
+ - "noble"
+ - name: "Debian"
+ versions:
+ - "bookworm"
diff --git a/roles/claude/tasks/main.yml b/roles/claude/tasks/main.yml
new file mode 100644
index 00000000..0d6204dc
--- /dev/null
+++ b/roles/claude/tasks/main.yml
@@ -0,0 +1,19 @@
+---
+- name: "Check if claude.code binary exists"
+ ansible.builtin.stat:
+ path: "{{ ansible_facts['env']['HOME'] }}/.local/bin/claude"
+ register: claude_binary
+
+- name: "Download claude.code installer"
+ ansible.builtin.get_url:
+ url: "https://claude.ai/install.sh"
+ dest: "/tmp/install_claude.sh"
+ mode: "0755"
+ when: not claude_binary.stat.exists
+
+- name: "Run claude.code installer"
+ ansible.builtin.command:
+ cmd: "/tmp/install_claude.sh"
+ args:
+ creates: "{{ ansible_facts['env']['HOME'] }}/.local/bin/claude"
+ when: not claude_binary.stat.exists