ops for everyone - john britton
Post on 08-May-2015
1.816 Views
Preview:
TRANSCRIPT
OPS FOR EVERYONE
johndbrion
I THOUGHT OPS WAS JUST FOR NECKBEARDS
I WAS WRONG
FIRST PRINCIPLES:
COLLABORATION
AUTOMATION
EXPERIMENTATION
DISTRIBUT-ATION?
HOW DO WE DO IT?
BOXEN
HUBOT
BOXEN
ELIMINATE FRICTION
BOXEN MAKES IT POSSIBLE TOBUILD SOMETHING MEANINGFUL
ON DAY ONE
DAY ONE
INSTALL XCODECOMMAND LINE TOOLS
$ curl -s https://example.com/script/boxen.sh > /tmp/install-boxen; bash /tmp/install-boxen | sh
GRAB A BEVERAGE
HOMEBREW, GIT, GCC, .DEV DNS, NGINX, RBENV, RUBY-BUILD, MANY RUBIES,
NODENV, MANY NODES, HEROKU TOOLCHAIN, HUB, MYSQL,
POSTGRESQL, ELASTICSEARCH, RIAK, JAVA
$ boxen github
YOU’VE GOT GITHUB,NOW GO WRITE SOME CODE
PROJECTMANIFEST
class projects::education-web { github::project { 'education-web': dotenv => true, elasticsearch => true, redis => true, ruby => '1.9.3-p231-tcs-github', postgresql => [ 'education_web_development', 'education_web_test' ] }}
PERSONALMANIFEST
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
class people::johndbritton { # boxen/puppet-osx include osx::dock::autohide include osx::dock::clear_dock include osx::dock::disable include osx::finder::unhide_library include osx::global::enable_keyboard_control_access include osx::software_update include osx::universal_access::ctrl_mod_zoom # applications include adium include caffeine include chrome include dropbox include firefox include flux include onepassword include sequel_pro include sublime_text_2 include transmission include vlc package { 'Bartender': provider => 'compressed_app', source => 'http://www.macbartender.com/Demo/Bartender.zip'; 'SublimeText3': provider => 'appdmg', source => 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203047.dmg'; } # homebrew package { ['grc', 'iftop', 'watch', 'wget']: } # shell include zsh $home = "/Users/${::boxen_user}" $src = "${::boxen_srcdir}" $my = "${src}/johndbritton" $dotfiles = "${my}/dotfiles" # oh-my-zsh repository { 'oh-my-zsh': source => 'robbyrussell/oh-my-zsh', path => "${src}/robbyrussell/oh-my-zsh", require => File[$src] } file { "${home}/.zshrc": ensure => link, target => "${dotfiles}/zshrc" } # github projects include projects::education-web}
IT’S JUST PUPPET, FOR YOUR MAC
HUBOT
SHARE THE TERMINAL
HUBOT MAKES IT POSSIBLE TO TEST, SHIP, AND MEASURE EVERYTHING
CHATOPS
NOBODY CAN SEE WHAT COMMANDS ARE RUN ON THE TERMINAL
IT’S HARD FOR NEW HIRES TOFIGURE OUT HOW TO DEPLOY
THINK OF CHAT AS A SHARED COMMAND LINE
CHATOPS SURFACES OPERATIONS THAT WOULD OTHERWISE BE INVISIBLE
NEWCOMERS LEARN BYWATCHING EXPERIENCED USERS
TEST
/CI BUILD
SHIP
/CONFIG
/DEPLOY
/HOSTS
/PUPPET RUN
MEASURE
/GRAPH ME
FUN COMMANDS
/WHERE IS
/FITBIT ME
/NEW HIRE ME
/ANIMATE ME
johndbrion
top related