Coder Social home page Coder Social logo

ajcborges / macsetup Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bhdicaire/macsetup

0.0 0.0 0.0 9.49 MB

๐Ÿ”ง Ansible code to build my Mac from scratch

License: MIT License

Shell 50.22% AppleScript 10.78% Makefile 17.82% Jinja 21.18%

macsetup's Introduction

macSetup logo

Youโ€™ve been there too โ€” setting up a new computer can be an ad-hoc, manual, and time-consuming process.

I wasn't happy with any of the automated setup that I came across. They were either overly complex or were missing features that I really wanted.

My objective is to fully automate macOS installation and configuration using Ansible. Lots of stuff in here you probably don't need, and some that needs personalization for your system ... So feel free to fork, and customize.

What problem does it solve and why is it useful?

Setup a Mac up with everything configured properly with easy-to-understand instructions that automate the installation and configuration from the bare metal.

Modules

I have currently implemented the following modules.

Software installation

This is being accomplish with the use of homebrew, homebrew-cask, and the Mac Apple Store CLI (MAS).

Configuration Files & Symlinks Any files and folders that are to be copied or symlinked, including app settings, licenses and dotfiles.
Dock Configuration Automatic building of the Dock using [dockutil](https://github.com/kcrawford/dockutil).
Default Apps File associations for various applications using [duti](https://github.com/moretension/duti).
Startup Setup Ensures that the required items start on startup using [loginitems](https://github.com/OJFord/loginitems).
Terminal Customisatio Setting up the Terminal using JXA.
OS X default

Apple Defaults

  • macOS & Software Defaults: Updating of plist properties for various aspects of macOS and software configuration. This uses a custom plist module which allows for complex updates of plist files far beyond the defaults command. The plist module is a modified version of Matthias Neugebauer's plist module.
Developer tools

Vim, bash, tab completion, curl, git, GNU core utils, Python, Ruby, etc Developer apps: iTerm2, Sublime Text, Atom, VirtualBox, Vagrant, Docker, Chrome, etc Node.js, JSHint, and Less

Cloud services

Amazon Web Services (Boto, AWS CLI, S3cmd, Azure


Install

The various configuration files are tested on OS X High Sierra (10.13). Older operating system versions may work โ€” your mileage may vary, so download, review, and then execute the scripts.

Step 0: Prepare your computer

Refer to my guide for this important step. You need to login in the app

Software Deactivation

The following software should be deactivated before re-installing macOS:

  • TBD !

Step 1: Fetch the bootstrap script

Open the terminal window: Install git

$ git clone https://github.com/
sh -c "$(curl -fsSL https://raw.githubusercontent.com/bhdicaire/macSetup/master/install.sh)"```

### Step 2: Run the bootstrap
Download, *review*, then execute the script:

### Step 3: Reboot your computer

It is strongly suggested that you reboot your Mac after the first run
of this tool.

Answer a couple of questions ...

Run the playbook a second time, to get the configurations.

### Step 4: Go get a cup of coffee because you're NOT done

I prefer an espresso myself. Vodka is also fine.

The following tasks must be performed manually as I have yet to find a way to
automate them:
- [ ] Microsoft Office 2016
- [ ] App Store - restore In-App Purchases for Marked2

macsetup's People

Contributors

bhdicaire avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.