From f9b1434299720b009f00477c3b7e880c1f47765e Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Tue, 19 Aug 2025 23:55:38 +0200 Subject: Add homebrew role --- roles/homebrew/README.md | 7 +++++++ roles/homebrew/meta/main.yml | 18 ++++++++++++++++++ roles/homebrew/tasks/main.yml | 40 +++++++++++++++++++++++++++++++++++++++ roles/homebrew/vars/archlinux.yml | 5 +++++ roles/homebrew/vars/debian.yml | 5 +++++ 5 files changed, 75 insertions(+) create mode 100644 roles/homebrew/README.md create mode 100644 roles/homebrew/meta/main.yml create mode 100644 roles/homebrew/tasks/main.yml create mode 100644 roles/homebrew/vars/archlinux.yml create mode 100644 roles/homebrew/vars/debian.yml (limited to 'roles') diff --git a/roles/homebrew/README.md b/roles/homebrew/README.md new file mode 100644 index 00000000..db948a04 --- /dev/null +++ b/roles/homebrew/README.md @@ -0,0 +1,7 @@ +# Ansible Role: homebrew + +This role installs homebrew package manager on Linux distributions + +## Role Variables + +- `homebrew_dependencies` the required system packages for homebrew installation (auto-configured per OS) diff --git a/roles/homebrew/meta/main.yml b/roles/homebrew/meta/main.yml new file mode 100644 index 00000000..5b3ae39a --- /dev/null +++ b/roles/homebrew/meta/main.yml @@ -0,0 +1,18 @@ +--- +dependencies: [] +galaxy_info: + author: "a14m" + description: "Install homebrew package manager on Linux distributions" + company: "kartoffeln.work GmbH." + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" + - name: "Ubuntu" + versions: + - "noble" + - name: "Debian" + versions: + - "bookworm" diff --git a/roles/homebrew/tasks/main.yml b/roles/homebrew/tasks/main.yml new file mode 100644 index 00000000..81e9dbe3 --- /dev/null +++ b/roles/homebrew/tasks/main.yml @@ -0,0 +1,40 @@ +--- +- name: "Include OS-specific variables" + ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" + +- name: "Install homebrew dependencies" + become: true + ansible.builtin.package: + name: "{{ item }}" + state: "present" + with_items: "{{ homebrew_dependencies }}" + +- name: "Create linuxbrew directory" + become: true + ansible.builtin.file: + path: "/home/linuxbrew" + state: directory + owner: "{{ ansible_user_id }}" + group: "{{ ansible_user_id }}" + mode: "0755" + +- name: "Download homebrew installer" + ansible.builtin.get_url: + url: "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh" + dest: "/tmp/install_homebrew.sh" + mode: "0755" + +- name: "Run homebrew installer" + ansible.builtin.command: + cmd: "/tmp/install_homebrew.sh" + args: + creates: "/home/linuxbrew/.linuxbrew/bin/brew" + environment: + NONINTERACTIVE: "1" + +- name: "Add homebrew to shell profile" + ansible.builtin.lineinfile: + path: "{{ ansible_env.HOME }}/.bashrc" + line: 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' + create: true + mode: "0644" diff --git a/roles/homebrew/vars/archlinux.yml b/roles/homebrew/vars/archlinux.yml new file mode 100644 index 00000000..0b3af4b0 --- /dev/null +++ b/roles/homebrew/vars/archlinux.yml @@ -0,0 +1,5 @@ +--- +homebrew_dependencies: + - base-devel + - curl + - git diff --git a/roles/homebrew/vars/debian.yml b/roles/homebrew/vars/debian.yml new file mode 100644 index 00000000..3f2348cc --- /dev/null +++ b/roles/homebrew/vars/debian.yml @@ -0,0 +1,5 @@ +--- +homebrew_dependencies: + - build-essential + - curl + - git -- cgit v1.2.3