Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unixPB: adds roles xcode_offline and brew to Unix_Playbook #3417

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
download and copy (soft link maybe) xcode offline files here:
Xcode_12.4.xip
Xcode_13.1.xip
etc.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
#########################
# Xcode offline install #
#########################

# Install Xcode without needing to login with appleID
# Path /Applications/Xcode.app/
# Requires the following variable:
# xcode_version: 12.4 | 13.1 | 13.2.1 | 13.4 | 14.3.1 | 15.0.1 | 15.2

- name: Xcode offline
include_tasks: xcode_offline.yml
tags: xcode_offline
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
- name: Check xcode version
shell: xcodebuild -version
register: xcodebuild_version
failed_when: false
tags: xcode_offline

- name: Install and configure xcode if not installed
when: "'Xcode ' + xcode_version not in xcodebuild_version.stdout"
tags: xcode_offline
block:

- name: Display xcode version
debug:
var: xcodebuild_version

- name: Copy xcode file to remote host
copy:
src: Xcode_{{ xcode_version }}.xip
mahdipub marked this conversation as resolved.
Show resolved Hide resolved
dest: '~'
force: false

- name: Install xcode {{ xcode_version }}
shell: |
xip -x ~/Xcode_{{ xcode_version }}.xip
args:
chdir: /Applications
become: true
become_user: "{{ ansible_user }}"

- name: Configure xcode {{ xcode_version }}
become: true
shell: |
xcode-select -s /Applications/Xcode.app/Contents/Developer
xcodebuild -license accept

- name: Clean up after install Xcode
shell: |
rm ~/Xcode_{{ xcode_version }}.xip

- name: Check xcode version
shell: xcodebuild -version
register: output
ignore_errors: true

- name: Check if xcode version is correct
debug:
var: output
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---

- name: Check if Homebrew is already installed (x86_64)
stat:
path: /usr/local/bin/brew
register: b
when: ansible_architecture == "x86_64"
tags: brew

- name: Check if Homebrew is already installed (arm64)
stat:
path: /opt/homebrew/bin/brew
register: b
when: ansible_architecture == "arm64"
tags: brew

- name: Set brew_is_installed
set_fact: brew_is_installed="{{ b.stat.exists }}"
when: b.stat.exists is defined
tags: brew

- name: Install home brew
when: not brew_is_installed
tags: brew
block:
- name: Add ansible user to sudoers
template:
src: sudoers
dest: /etc/sudoers.d/{{ ansible_user }}
become: true

- name: Install home brew
shell: |
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

- name: Check brew installation
shell: /usr/local/bin/brew --version
register: check_brew
ignore_errors: true
when: ansible_architecture == "x86_64"

- name: Set brew_is_installed x86_64
set_fact: brew_is_installed="{{ check_brew.rc == 0 }}"
when: check_brew.rc is defined

- name: Check brew installation
shell: /opt/homebrew/bin/brew --version
register: check_brew
ignore_errors: true
when: ansible_architecture == "arm64"

- name: Set brew_is_installed arm64
set_fact: brew_is_installed="{{ check_brew.rc == 0 }}"
when: check_brew.rc is defined

- name: Fail brew installation
fail:
msg: 'brew is not installed! exiting...'
when: not brew_is_installed

- name: Configure brew x86_64
blockinfile:
state: present
insertafter: EOF
dest: ~/.zprofile
marker: "<!-- added by Ansible -->"
content: |
eval $(/usr/local/bin/brew shellenv)
when: ansible_architecture == "x86_64"

- name: Configure brew arm64
blockinfile:
state: present
insertafter: EOF
dest: ~/.zprofile
marker: "<!-- added by Ansible -->"
content: |
eval $(/opt/homebrew/bin/brew shellenv)
when: ansible_architecture == "arm64"

- name: Remove user ansible from sudoers
file:
path: /etc/sudoers.d/{{ ansible_user }}
state: absent
become: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
########
# brew #
########

- name: Install homebrew
include_tasks: brew.yml
when: ansible_distribution == "MacOSX"
tags: brew
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{ ansible_user }} ALL=(ALL) NOPASSWD: ALL
Loading