Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
3ee22ad3
Commit
3ee22ad3
authored
Mar 06, 2012
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:mpdehaan/ansible
parents
85e0de5b
498a4c80
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
10 deletions
+16
-10
README.md
+16
-10
No files found.
README.md
View file @
3ee22ad3
...
...
@@ -120,7 +120,8 @@ To just transfer a file directly to many different servers:
To use templating, first run the setup module to put the template variables you would
like to use on the remote host. Then use the template module to write the
files using the templates. Templates are written in Jinja2 format.
files using the templates. Templates are written in Jinja2 format. Playbooks
(covered below) will run the setup module for you, making this even simpler.
> ansible webservers -m setup -a "favcolor=red ntp_server=192.168.1.1"
> ansible webservers -m template -a "src=/srv/motd.j2 dest=/etc/motd"
...
...
@@ -154,9 +155,11 @@ Playbooks
Playbooks are a completely different way to use ansible and are particularly awesome.
They are the basis for a really simple configuration management system, unlike
They are the basis for a really simple configuration management
and deployment
system, unlike
any that already exist, and one that is very well suited to deploying complex
multi-machine applications.
multi-machine applications. While you might run the main ansible program for ad-hoc tasks,
playbooks are more likely to be kept in source control and used to push out your configuration
or assure the configurations of your remote systems are in spec.
An example showing a small playbook:
...
...
@@ -167,9 +170,7 @@ An example showing a small playbook:
max_clients: 200
user: root
tasks:
- include: base.yml
- name: configure template & module variables for future template calls
action: setup http_port=80 max_clients=200
- include: base.yml somevar=3 othervar=4
- name: write the apache config file
action: template src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
...
...
@@ -181,10 +182,15 @@ An example showing a small playbook:
Some key concepts here include:
*
Everything is expressed in simple YAML
*
Steps can be run as non-root
*
Modules can notify 'handlers' when changes occur.
*
Tasks and handlers can be 'included' to faciliate sharing and 'class' like behavior
*
Everything is expressed in a simple YAML data format, not a custom language, not code.
*
Playooks can have many steps
*
Any step can run as any user
*
Conditional handlers fire on 'notify'. Ex: restart apache only once, at the end, only if needed
*
Tasks and handlers can be 'included' to faciliate sharing and reuse
*
Include statements can take parameters for customization, and be used more than once per file
*
Variables from the host system (from facter, ohai, etc) bubble-up for use in templates
*
Variables can be deferenced like {{ varname }} in both include directives & templates
*
Templates are powered by Jinja2: http://jinja.pocoo.org/docs/templates/#synopsis
To run a playbook:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment