Chef:Powerful Infrastructure Automation
上QQ阅读APP看书,第一时间看更新

Configuring the web server

In order for the web server to deploy the web app, we need to add the required roles to the web server, as we did with the database server:

knife node run_list add web00 "role[base_server]"
knife node run_list add web00 "role[web_server]"

Now, we can execute chef-client on the web host (again making sure to use sudo so that it has permission to do its work):

[jewart]% knife ssh 'name:web00' -x ubuntu 'sudo chef-client'

At this point, our web server will be in the following state:

  • The following required packages will be installed:
    • Python 2.7 and development libraries
    • The PostgreSQL client development libraries
    • Git
  • The directories our application needs to run are created
  • A virtualenv tool, which is based on the system Python 2.7 is created
  • Our application has been checked out from GitHub
  • A configuration file in /opt/webapp/src/config.py is created by Chef
  • Supervisord is configured to run our application and starts the server.py daemon

Now, you should be able to visit your newly installed web application at the following URL:

http://your-new-ec2-instance-hostname:8080

If you don't see your application, make sure that each of the preceding steps was successful.