Fork me on GitHub

Configuration Management

Configuration management involves modifying servers from an existing state to a desired state and automating how an application is deployed.

Configuration management tools

Numerous tools exist to modify server state in a controlled way, including Puppet, Chef, SaltStack, and Ansible. Puppet and Chef are written in Ruby, while SaltStack and Ansible are written in Python.

Ad hoc tasks

Configuration management tools such as Chef, Puppet, Ansible, and SaltStack are not useful for performing ad hoc tasks that require interactive responses. Fabric and Invoke are used for interactive operations, such as querying the database from the Django manage.py shell.

Ansible

Ansible is an open source configuration management and application deployment tool built in Python.

Ansible Resources

Application dependencies learning checklist

Learn about configuration management in the context of deployment automation and infrastructure-as-code.

Pick a configuration management tool and stick with it. My recommendation is Ansible because it is by far the easiest tool to learn and be productive with.

Read your configuration management tool's documentation and, when necessary, the source code.

Automate the configuration management and deployment for your project. Note that this is by far the most time consuming step in this checklist but will pay dividends every time you deploy your project.

Hook the automated deployment tool into your existing deployment process.

What's next after automating your app configuration?

How do I log events that happen in my app while it is running?

I want to learn more about the users of my app with web analytics.

How do I integrate external APIs into my application?

What should I do to secure my web application?


对Full Stack Python这本书很感兴趣?想要一本包含代码、详细教程的完整版吗?那么用邮箱订阅吧。一旦完成了我就会发给你的,别担心除了订阅确认邮件,我是不会给你发乱七八糟的邮件的。