* this assumes your cookbook home is ~/chef-repo/cookbooks
$ knife create cookbook mytomcat
$ vi ~/chef-repo/cookbooks/mytomcat/recipes/default.rb
# # Cookbook Name:: mytomcat # Recipe:: default # # Copyright 2012, James Tran # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This allows chef to create users and their passwords gem_package "ruby-shadow" do action :install end # Create a unix group group "webadmin" do gid 100001 end # To create an encrypted password use the following: # openssl passwd -1 "theplaintextpassword" # Create a unix user user "webadmin" do comment "Web Administrator" uid 10001 gid "web" home "/home/webadmin" shell "/bin/bash" password "$1$2QYepl2p$.7ckFmevVtpBZpokJCuSd." end # Create a directory directory "/opt/apps/" do owner "webadmin" group "web" mode "0755" action :create recursive true end # Run a bash shell - download and extract tomcat bash "install_tomcat" do user "root" cwd "/opt/apps" code <<-EOH wget http://mirrors.ibiblio.org/apache/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27.tar.gz tar -xzf apache-tomcat-7.0.27.tar.gz chown -R webadmin:webadmin /opt/apps EOH not_if "test -d /opt/apps/apache-tomcat-7.0.27" end