Files
Adyrem 3d596b984b Add Claude Code VM (105) with cloud-init provisioning
Arch Linux cloud image, 4 cores/8GB, dev-net (10.10.2.10), autostart.
Cloud-init handles user/SSH key/network on first boot. Ansible role
installs Claude Code CLI, tmux, SSH keys, SSH config for all managed
VMs via ProxyJump, homelab repo clone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 17:41:52 +02:00

65 lines
1.6 KiB
YAML

---
- name: Install Claude Code dependencies
community.general.pacman:
name:
- nodejs
- npm
- ansible
- python-pip
- tmux
- git
state: present
update_cache: true
- name: Install Claude Code CLI
community.general.npm:
name: "@anthropic-ai/claude-code"
global: true
state: present
- name: Deploy homelab SSH private key
ansible.builtin.copy:
src: homelab_ed25519
dest: /home/{{ admin_user }}/.ssh/homelab_ed25519
owner: "{{ admin_user }}"
group: "{{ admin_user }}"
mode: "0600"
- name: Deploy claude-code SFTP private key
ansible.builtin.copy:
src: claude-code_ed25519
dest: /home/{{ admin_user }}/.ssh/claude-code_ed25519
owner: "{{ admin_user }}"
group: "{{ admin_user }}"
mode: "0600"
- name: Write SSH client config
ansible.builtin.template:
src: ssh_config.j2
dest: /home/{{ admin_user }}/.ssh/config
owner: "{{ admin_user }}"
group: "{{ admin_user }}"
mode: "0600"
- name: Write tmux config
ansible.builtin.copy:
dest: /home/{{ admin_user }}/.tmux.conf
owner: "{{ admin_user }}"
group: "{{ admin_user }}"
mode: "0644"
content: |
set -g default-terminal "screen-256color"
set -g history-limit 50000
set -g mouse on
set -g base-index 1
set -g escape-time 10
bind r source-file ~/.tmux.conf \; display "Reloaded"
- name: Clone homelab repo
ansible.builtin.git:
repo: "http://10.10.1.125:3000/adyrem/homelab.git"
dest: /home/{{ admin_user }}/dev/homelab
version: main
become_user: "{{ admin_user }}"
become: true