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
00ea71d8
Commit
00ea71d8
authored
May 01, 2012
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add some comments to ansible-pull and the example playbook
parent
6be85f4f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
2 deletions
+41
-2
bin/ansible-pull
+11
-0
examples/playbooks/ansible_pull.yml
+30
-2
No files found.
bin/ansible-pull
View file @
00ea71d8
#!/usr/bin/env python
# ansible-pull is a script that runs ansible in local mode
# after checking out a playbooks directory from git. There is an
# example playbook to bootstrap this script in the examples/ dir which
# installs ansible and sets it up to run on cron.
#
# usage:
# ansible-pull -d /var/ansible/local -U http://wherever/content.git -C production
#
# the git repo must contain a playbook named 'local.yml'
# (c) 2012, Stephen Fromm <sfromm@gmail.com>
#
# Ansible is free software: you can redistribute it and/or modify
...
...
@@ -47,6 +57,7 @@ def main(args):
git_opts
=
"repo=
%
s dest=
%
s version=
%
s"
%
(
options
.
url
,
options
.
dest
,
options
.
checkout
)
cmd
=
'ansible all -c local -m git -a "
%
s"'
%
git_opts
print
"cmd=
%
s"
%
cmd
rc
=
_run
(
cmd
)
if
rc
!=
0
:
return
rc
...
...
examples/playbooks/ansible_pull.yml
View file @
00ea71d8
# ansibple-pull setup
#
# on remote hosts, set up ansible to run periodically using the latest code
# from a particular checkout, in pull based fashion, inverting Ansible's
# usual push-based operating mode.
#
# This particular pull based mode is ideal for:
#
# (A) massive scale out
# (B) continual system remediation
#
# DO NOT RUN THIS AGAINST YOUR HOSTS WITHOUT CHANGING THE repo_url
# FIXME: change the host group for safety
---
-
hosts
:
all
user
:
root
vars
:
# schdule is fed directly to cron
schedule
:
'
*/15
*
*
*
*'
# User to run ansible-pull as from cron
cron_user
:
root
# Directory to where repository will be cloned
workdir
:
/var/lib/ansible/local
# Repository to check out
repo_url
:
git://github.com/sfromm/ansible-playbooks.git
# Repository to check out -- YOU WANT TO CHANGE THIS
#repo_url: git://github.com/sfromm/ansible-playbooks.git
repo_url
:
git://github.com/mdehaan/ansible-examples.git
tasks
:
-
name
:
Install ansible
action
:
yum pkg=ansible state=installed
-
name
:
Create local directory to work from
action
:
file path=$workdir state=directory owner=root group=root mode=0751
-
name
:
Copy ansible inventory file to client
action
:
copy src=/etc/ansible/hosts dest=/etc/ansible/hosts
owner=root group=root mode=0644
-
name
:
Create crontab entry to clone/pull git repository
action
:
template src=templates/ansible-pull.j2 dest=/etc/cron.d/ansible-pull owner=root group=root mode=0644
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