Skip to content

Instantly share code, notes, and snippets.

@gquemener
Last active December 13, 2015 23:59
Show Gist options
  • Save gquemener/4995702 to your computer and use it in GitHub Desktop.
Save gquemener/4995702 to your computer and use it in GitHub Desktop.
Puppet manifest to install my linux dev environment
user { "gildas":
ensure => "present",
managehome => true,
before => Exec["install_dotfiles"]
}
package { "git":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "gnome-shell":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "vim-gnome":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "zsh":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "tmux":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "chromium-browser":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "python-pip":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "python-dev":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "build-essential":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "curl":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "php5":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "ruby1.9.3":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "libaugeas-ruby1.9.1":
ensure => installed,
require => Package["ruby1.9.3"],
before => Exec["install_dotfiles"]
}
package { "postgresql":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "mysql-server":
ensure => installed,
before => Exec["install_dotfiles"]
}
package { "guard":
ensure => installed,
provider => "gem",
before => Exec["install_dotfiles"]
}
package { "guard-ctags-composer":
ensure => installed,
provider => "gem",
require => Package["guard"],
before => Exec["install_dotfiles"]
}
package { "teamocil":
ensure => installed,
provider => "gem",
require => Package["tmux"],
before => Exec["install_dotfiles"]
}
exec { "install_dotfiles":
cwd => "/home/gildas",
command => "/usr/bin/git clone git@github.com:gquemener/dotfiles.git bin/dotfiles",
creates => "/home/gildas/bin/dotfiles/.git",
user => "gildas"
}
exec { "/usr/bin/fc-cache -vf":
require => File["/home/gildas/.fonts"]
}
file {"/home/gildas/.bashrc":
ensure => link,
target => "/home/gildas/bin/dotfiles/bashrc",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.zshrc":
ensure => link,
target => "/home/gildas/bin/dotfiles/zshrc",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.bash_aliases":
ensure => link,
target => "/home/gildas/bin/dotfiles/bash_aliases",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.vimrc":
ensure => link,
target => "/home/gildas/bin/dotfiles/vimrc",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.vim":
ensure => link,
target => "/home/gildas/bin/dotfiles/vim",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.fonts":
ensure => link,
target => "/home/gildas/bin/dotfiles/fonts",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.gitconfig":
ensure => link,
target => "/home/gildas/bin/dotfiles/gitconfig",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.gitignore_global":
ensure => link,
target => "/home/gildas/bin/dotfiles/gitignore_global",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.psqlrc":
ensure => link,
target => "/home/gildas/bin/dotfiles/psqlrc",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.Xdefaults":
ensure => link,
target => "/home/gildas/bin/dotfiles/Xdefaults",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.tmux.conf":
ensure => link,
target => "/home/gildas/bin/dotfiles/tmux.conf",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.teamocil":
ensure => link,
target => "/home/gildas/bin/dotfiles/teamocil",
require => Exec["install_dotfiles"]
}
file {"/home/gildas/.config/powerline":
ensure => link,
target => "/home/gildas/bin/dotfiles/config/powerline",
require => Exec["install_dotfiles"]
}
file {"/usr/share/git-core/templates/hooks/post-merge":
ensure => link,
target => "/home/gildas/bin/dotfiles/git-core/templates/hooks/post-merge",
require => Exec["install_dotfiles"]
}
augeas {"cli-php-conf":
context => "/files/etc/php5/cli/php.ini",
changes => [
"set PHP/short_open_tag Off",
"set Date/date.timezone Europe/Paris"
],
require => Package["php5", "libaugeas-ruby1.9.1"]
}
file {["/home/gildas/.local", "/home/gildas/.local/bin"]:
ensure => directory,
recurse => true,
owner => "gildas",
group => "gildas",
before => Exec["composer install"]
}
exec {"composer install":
command => "/usr/bin/curl -s https://getcomposer.org/installer | /usr/bin/php -- --install-dir=/home/gildas/.local/bin",
creates => "/home/gildas/.local/bin/composer.phar",
}
exec {"composer update":
require => Exec["composer install"],
command => "/home/gildas/.local/bin/composer.phar self-update"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment