diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-08-19 23:55:38 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-08-20 00:07:39 +0200 |
| commit | f9b1434299720b009f00477c3b7e880c1f47765e (patch) | |
| tree | f41019c242addad509bd9dda87a224829d217f21 | |
| parent | c9910eac758ae62b09c98d0dde788c2c84e1f2aa (diff) | |
Add homebrew role
| -rw-r--r-- | molecule/default/converge.yml | 1 | ||||
| -rw-r--r-- | roles/homebrew/README.md | 7 | ||||
| -rw-r--r-- | roles/homebrew/meta/main.yml | 18 | ||||
| -rw-r--r-- | roles/homebrew/tasks/main.yml | 40 | ||||
| -rw-r--r-- | roles/homebrew/vars/archlinux.yml | 5 | ||||
| -rw-r--r-- | roles/homebrew/vars/debian.yml | 5 | ||||
| -rw-r--r-- | site.yml | 1 |
7 files changed, 77 insertions, 0 deletions
diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 90c760b1..2bc1759b 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -19,6 +19,7 @@ - role: password_policy - role: locales - role: timezone + - role: homebrew - role: pihole vars: pihole_interface: "eth0" 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 @@ -30,6 +30,7 @@ roles: - role: "locales" - role: "timezone" + - role: "homebrew" - name: "Raspberry Pi configure" gather_facts: true |
