This is the configuration I use to bootstrap and maintain my development machines. I have automated the bulk of this over the years and it's helped me maintain a reproducible development machine.
Look through my osx-bootstrapping repository for a previous incantation of this setup.
You will also notice that this repository is linked into Travis CI and builds are kicked off automatically on PRs and such.
The idea here is that if this successfully builds in Travis, there's a reasonable chance it will build when it comes time to bootstrap my laptop again.
- Ensure that the Fn keys at the top act as actual Function keys by default, and not their Lenovo counterparts. This will need to be done in the bios.
- Ensure that VTx virtualization has been enabled. This will also need to be done in the bios.
- Boot up the Dell T1700 with the netboot.xyz USB key in place. Ensure that an ethernet cable is connected.
- At the boot screen, hit F12 and select
USB Storage Device
. - Install Ubuntu 16.04. When prompted, supply
http://cdn.rawgit.com/marvinpinto/laptop/master/ubuntu-mp-desktop-preseed.cfg
as the preseed URL. - After the reboot, hit Ctrl + Alt + F1 to get to terminal.
- Run the following curl/bash incantation to get everything going:
export ANSIBLE_VAULT_PASSWORD=sekrit bash -xec "$(curl -L https://raw.githubusercontent.com/marvinpinto/laptop/master/bootstrap.sh)"
- Reboot the machine after everything installs correctly.
- Follow the instructions to restore the GPG keys.
- Follow the instructions to restore all the data files.
- Follow the instructions to restore all the base project directories.
- Follow the instructions to initialize the 1password CLI.
- Configure
wicd-curses
to connect to the WiFi network. - Reboot the machine one last time.
To be updated..
Configure the yubikey to work on the new machine:
$ gpg --card-edit
gpg/card> fetch
gpg/card> quit
Mark the GPG key as ultimately trusted:
$ gpg --edit-key 52654E6EB0BB564B
gpg> trust
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
gpg> quit
Use the rclone wrapper to copy/sync all the data files:
$ acd-backup "down"
$ bootstrap-op
Use the git wrapper script to restore all the base project directories:
$ bootstrap-projects
Make any changes as needed and then run make dotfiles
to apply them locally.
Similar to updating a config file, adding/removing system applications (and their configuration) will involve tweaking the ansible roles linked to this repository.
Make the changes as needed and then run:
make system