/chef-developer_recipes

Helper CHEF repository for my devbox box configuration. Suitable for: LAMP, MEAN stack, Java stack [DevOps, Chef]

Primary LanguageHTML

Summary

Helper CHEF repository for my devbox box configuration. Suitable for:

  • LAMP
  • MEAN stack
  • Java stack

Attributes

node[:user][:name]

Requires you to specify name of the user for whom we are installing

default[:developer_bootstrap][:home_dir]

User's home folder, by default

default[:developer_bootstrap][:home_dir] = '/home/'+node[:user][:name]

default[:developer_bootstrap][:apps_dir]

Directory where user software will be installed, by default

default[:developer_bootstrap][:apps_dir] = default[:developer_bootstrap][:home_dir] + "/apps"

Recipes

###apache_solr4 Performs default setup of the SOLR 4.6.0; Reuses tomcat cookbook. For best results with chef-solo, override ssl passwords in environment:

 "override_attributes":{
      "tomcat" : {
                   "keystore_password": "devroot",
                    "truststore_password": "devroot"
                  }                 

    }

also make sure that you have tomcat_users databag in place so the recipe could configure tomcat users rights. Example of the databag item:

{
  "id": "root",
  "password": "devroot",
  "roles": [
    "manager",
    "admin"
  ]
}

###common_schema Installs DBA framework Common_Schema 2.2 http://code.openark.org/blog/mysql/common_schema-2-2-better-queryscript-isolation-tokudb-table_rotate-split-params , requires MySQL/MariaDB/Percona to be installed.

Check usage options: http://www.percona.com/live/london-2013/sites/default/files/slides/common_schema-pllondon-2013_0.pdf

###default gpick - color picker, xclip - console operations with clipboard, mc - midnight commander, htop - handy process monitor, nautilus-open-terminal - menu item to open current folder in terminal, rabbitVCS - gui for git/SVN/mercurial

googlechrome

Stable google chrome browser

ideaj

IntelliJ IDEA — The Best Java and Polyglot IDE, community edition

ideaj_pro

IntelliJ IDEA — The Best Java and Polyglot IDE, pro (trial) edition

mailcatcher

Debug tool to catch emails send from the box. Nicely mocks sendmail and SMTP servers. http://mailcatcher.me/ Web interface available on port 1080

mariadb_client

Client packages for mariaDB, note: requires appropriate environment settings:

  "mariadb": {
                   "version":"5.5"
                },
     "mysql" :  {
                   "use_upstart": false,
                   "server_root_password": "devroot",
                   "server_repl_password": "devrepl",
                   "server_debian_password": "devdebian",                   
                   "client": {
                                "packages":["mariadb-client", "libmariadbclient-dev"]
                             },
                   "server": {
                                "packages":["mariadb-server"]
                             }          
                }

###mariadb_server MariaDB server (MySQL compatible) - see notes for mariadb_client

###nodejs Installs nodejs + set of modules. For nodejs in the environment file you have an ability to specify version hints:

   "nodejs": {
                  "install_method":"source",
                  "version":"0.10.24",
                  "checksum":"610cd733186842cb7f554336d6851a61b2d3d956050d62e49fa359a47640377a",
                  "checksum_linux_x64":"6ef93f4a5b53cdd4471786dfc488ba9977cb3944285ed233f70c508b50f0cb5f",
                  "checksum_linux_x86":"fb6487e72d953451d55e28319c446151c1812ed21919168b82ab1664088ecf46",
                  "dir":"/usr/local",
                  "npm":"1.3.9",
                  "src_url":"http://nodejs.org/dist",
                  "legacy_packages":false
                }           

NodeJS modules installed with this recipe:

Note: due to npm porting issues to windows systems, supervisor makes useful sense for unixes only if you are running nodejs on windows consider another approach Dirty example:

gem install watchr
watchr .watchr	
where .watchr

RUN_COMMAND = "node server.js > server.log"
KILL_COMMAND = "taskkill /IM node.exe /f"
 
puts "starting server"
io = IO.popen(RUN_COMMAND)
 
watch("^.*\.js$") do |match|  
    system KILL_COMMAND
    puts "restarting server"
    io = IO.popen(RUN_COMMAND)
end

###oracle_virtualbox This recipe is intended to use on host computer only. it installs Oracle VirtualBox 4.3 https://www.virtualbox.org/ In combination with Vagrant this tool can be used for virtual development environments provision.

###percona_toolkit Percona Toolkit for MySQL is a collection of advanced command-line tools used by Percona MySQL Support staff to perform a variety of MySQL server and system tasks that are too difficult or complex to perform manually, including:

  • Verify master and replica data consistency
  • Efficiently archive rows
  • Find duplicate indexes
  • Summarize MySQL servers
  • Analyze queries from logs and tcpdump
  • Collect vital system information when problems occur

More: http://www.percona.com/doc/percona-toolkit/2.2/

Note: from time to type you can experience situation, that key server is temporary down. In this case, you can add the key manually:

wget -q http://www.percona.com/redir/downloads/RPM-GPG-KEY-percona
gpg --import RPM-GPG-KEY-percona

php_webgrind

Webgrind is a Xdebug profiling web frontend in PHP5. It implements a subset of the features of kcachegrind and installs in seconds and works on all platforms

  • Super simple, cross platform installation - obviously :)
  • Track time spent in functions by self cost or inclusive cost. Inclusive cost is time inside function + calls to other functions.
  • See if time is spent in internal or user functions.
  • See where any function was called from and which functions it calls.
  • Generate a call graph using gprof2dot.py

https://github.com/jokkedk/webgrind

php_xdebug

Debug extension for PHP

phpmyadmin

Classic web frontend for mysql, available at /phpmyadmin/ virtual folder

###phpstorm Jetbrains IDE for PHP development

pycharm

Jetbrains IDE for python development, community edition, classic python only

pycharm_pro

Jetbrains IDE for pythin development, professional edition, modern python frameworks support

rabbitvcs

GUI for git, subversion, mercurial. Smth like TortoiseSVN/TortoiseGit on windows box

rubymine

Jetbrains IDE for ruby development

sublime_text

Evaluation of the handy crossplatform developer friendly editor (beta version of the SublimeText3)

teamviewer

Remote access to your box (non commercial use only)

###vagrant In combination with VirtualBox this tool can be used for virtual development environments provision. See http://docs.vagrantup.com/v2/why-vagrant/index.html for more details

webmin

Best web based administration tool for managing your servers without console.

How to use

See https://github.com/Voronenko/chef-developer_bootstrap

#Linked projects: #

Interested in pure Chef template? See https://github.com/Voronenko/chef-developer_bootstrap

Interested in using developer box Chef recipes in your own cookbooks? See https://github.com/Voronenko/chef-developer_recipes

Interested in building your devbox on top of Vagrant + vagrant-berkshelf plugin? See https://github.com/Voronenko/vagrant-wrap

Note: see following article about future of the vagrant-berkshelf plugin https://sethvargo.com/the-future-of-vagrant-berkshelf/

Interested in building your devbox on top of Vagrant + test-kitchen? See https://github.com/Voronenko/lamp-kitchen