mirror of
https://github.com/genebean/dots.git
synced 2026-03-27 01:17:42 -04:00
Added new README file
This commit is contained in:
parent
54e0e4c808
commit
cfa3aa1681
1 changed files with 86 additions and 0 deletions
86
README.md
Normal file
86
README.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# dots
|
||||
|
||||
My dot files and a tool to deploy them, and the programs that use them, to
|
||||
various OS's. Some additional tools that I consider part of my baseline setup
|
||||
are also installed and, if possible, configured by dots.
|
||||
|
||||
Dots is written in ruby and utilizes bundler to keep all its dependancies
|
||||
as self-contained as possible. Installation of programs and management of git
|
||||
repositories is handled by way of the
|
||||
[Puppet gem](https://rubygems.org/gems/puppet).
|
||||
|
||||
Everything about dots assumes you are running it as a normal user, not as root.
|
||||
Strange and unexpected things could well happen if you run any part of it as
|
||||
root or via sudo.
|
||||
|
||||
|
||||
## Initial Setup
|
||||
|
||||
```bash
|
||||
git clone git@github.com:genebean/dots.git ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
bin/bootstrap.sh
|
||||
This script takes care of getting dots ready to use
|
||||
Enter the number of the task you want to perform:
|
||||
1) Mac setup
|
||||
2) EL setup
|
||||
3) Quit
|
||||
Task:
|
||||
```
|
||||
|
||||
After you run the setup for your OS you will want to make sure that
|
||||
[puppet/production/hieradata/nodes/](puppet/production/hieradata/nodes/)
|
||||
contains a file matching the hostname of your machine. That file needs to
|
||||
contain at least the following:
|
||||
|
||||
```yaml
|
||||
---
|
||||
homedir: '/Users/johndoe'
|
||||
```
|
||||
|
||||
Naturally, you will want to adjust the entry to match the real path to your
|
||||
home directory. On a Mac this is generally in `/Users/` or `/home/` on Linux.
|
||||
|
||||
|
||||
## Running dots
|
||||
|
||||
There are primary way to interact with dots is via `bundle exec rake dots`.
|
||||
This will run an interactive cli program. Additional tasks are available in the
|
||||
dots namespace. You can see all the available tasks via
|
||||
`bundle exec rake -T`.
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
#### Running Puppet
|
||||
|
||||
```bash
|
||||
# Any of these will work:
|
||||
bundle exec rake dots:run_puppet
|
||||
bundle exec rake dots:run_puppet_noop
|
||||
bundle exec puppet apply --environmentpath ~/.dotfiles/puppet ~/.dotfiles/puppet/production/manifests/site.pp
|
||||
```
|
||||
|
||||
|
||||
#### Installed Homebrew packages
|
||||
|
||||
To see what has been installed (not the deps) run `brew leaves`
|
||||
|
||||
|
||||
## Project structure
|
||||
|
||||
* `bin/`: this is where the "application" bits live
|
||||
* `bin/bootstrap`: platform specific helpers called by `bin/bootstrap.sh`
|
||||
* `copy/`: files directly in this directory are copied to all hosts
|
||||
* `copy/mac/`: files in here get copied to Macs
|
||||
* `copy/nix/`: files in here get copied to all Posix systems
|
||||
* `link/`: files directly in this directory are symlinked on all hosts.
|
||||
* all symlinks are prefixed with a dot. Ex: `link/gemrc` becomes `~/.gemrc`
|
||||
* `link/mac/`: files in here get symlinked on all Macs
|
||||
* `link/nix/`: files in here get symlinked on all Posix systems
|
||||
* `link/ssh/`: these files get symlinked under `~/.ssh/` on all Posix systems
|
||||
* `puppet/`: this is basically a control repo modified to suite this setup
|
||||
* `puppet/production/`: items from an environment's branch in a control repo
|
||||
* this setup assumes Puppet 4 and Hiera 5. Hiera's config is parsed as part of
|
||||
the environment rather than from a global config file.
|
||||
* `spec/`: unit tests go here
|
||||
Loading…
Add table
Add a link
Reference in a new issue