Commit graph

299 commits

Author SHA1 Message Date
Michael DeHaan
bacb6644db update group_by example 2013-05-05 13:36:56 -04:00
Michael DeHaan
ca822045e2 Update get_url example 2013-05-05 13:36:28 -04:00
Michael DeHaan
b5339fe32e update eucalyptus/ec2 example 2013-05-05 13:34:29 -04:00
Michael DeHaan
264f527c98 update environment example 2013-05-05 13:33:05 -04:00
Michael DeHaan
1f93887e02 Update delegation example. 2013-05-05 13:31:48 -04:00
Michael DeHaan
3575a3374b This conditional example is no longer needed. 2013-05-05 13:31:04 -04:00
Michael DeHaan
ebad0d4474 Update conditional examples. 2013-05-05 13:30:26 -04:00
Michael DeHaan
1365f0d6ab Start of making docs use {{ format }} 2013-05-05 13:17:15 -04:00
Afsin Toparlak
9699e086d7 typo 2013-05-01 23:11:19 +02:00
Michael DeHaan
b8fdcff524 Merge branch 'nocows' of git://github.com/jpmens/ansible into devel
Conflicts:
	lib/ansible/callbacks.py
	lib/ansible/constants.py
2013-04-27 11:34:39 -04:00
Michael DeHaan
aa55268514 Adds a logfile for ansible playbooks that can be set by the environment or configuration file. 2013-04-27 10:24:26 -04:00
Michael DeHaan
1f96925159 Update role example to show tag usage 2013-04-24 22:31:21 -04:00
Jan-Piet Mens
dfd885a012 Make ANSIBLE_NOCOWS configurable
nocows = 1 in ansible.cfg
	or old environment variable ANSIBLE_NOCOWS=1
add to ansible.cfg example
2013-04-23 16:43:23 +02:00
Stoned Elipot
e1ee257619 Default sudo password to SSH password.
While here factor out password prompting in ansible.utils
2013-04-22 23:57:50 -04:00
Michael DeHaan
37789a852a Rename set_up and tear_down to pre_tasks and post_tasks 2013-04-20 16:19:01 -04:00
Michael DeHaan
d7623d1f91 Added a 'set_up' and 'tear_down' which are like tasks, but execute before and after roles. 2013-04-20 16:07:06 -04:00
Michael DeHaan
3ab0ed5fd4 Allow 'when' and 'with_items' to be applied to roles. 2013-04-12 19:02:56 -04:00
Michael DeHaan
f0b21dcc0f allow references to names of variables in with_items without needing to surround them with Jinja2 '{{' delimeters 2013-04-10 18:42:54 -04:00
Michael DeHaan
fffb1a0a9d Loose tasks not in roles get executed after roles. 2013-04-06 18:36:25 -04:00
Michael DeHaan
f044fc344b When using roles, or other includes, the path to DWIM inside is the path of the task include
file.
2013-04-06 18:32:36 -04:00
Michael DeHaan
20ec682b30 Remove stray file 2013-04-06 13:14:56 -04:00
Michael DeHaan
5c4ed72571 Demo of parameterized roles! 2013-04-06 12:51:17 -04:00
Michael DeHaan
f308194b9a Added examples of how roles work! 2013-04-06 12:35:35 -04:00
Michael DeHaan
94d189bc7f Make this example make sense :) 2013-04-05 19:11:37 -04:00
Michael DeHaan
f585c4cde7 Upgraded variable support met with upgraded conditional support, see examples/playbooks/upgraded_vars.yml
for details!
2013-04-05 19:10:32 -04:00
willthames
c4442ad804 Documented executable setting for ansible.cfg 2013-04-05 09:39:22 +10:00
Michael DeHaan
df9e716208 Fix example 2013-03-11 23:37:29 -04:00
Michael DeHaan
0dbfa02f0c Example of how to do nested loops. 15 minutes of code :) 2013-03-11 17:49:01 -04:00
Nandor Sivok
2120580f7a netscaler module example playbook 2013-03-07 16:14:19 +01:00
Daniel Hokka Zakrisson
baeb1bce11 Fix example crypt to include trailing $
Fixes #2305.
2013-03-05 21:39:28 +01:00
Chris Hoffman
3104b79d35 Adding parameters example 2013-03-01 08:30:50 -05:00
James Martin
fa63a9b5f4 CloudFormation support. 2013-02-22 15:52:23 -05:00
Mikael Zayenz Lagerkvist
a5a0ab6b53 Fixed file-path in comment from examples.yml to intro_example.yml. 2013-02-21 09:40:42 +01:00
Michael DeHaan
1026fa6ab5 Merge pull request #2122 from lwade/devel
Adding ec2-related module example to examples/playbooks
2013-02-20 05:35:52 -08:00
lwade
2dbe01ea7c Adding ec2-related module example to examples/playbooks 2013-02-18 15:44:34 +00:00
Michael DeHaan
8992fee2ab Correct documentation example, Snowball was a hampster. 2013-02-17 15:17:24 -05:00
Michael DeHaan
7da9992110 Add complex arguments example 2013-02-17 15:06:17 -05:00
Michael DeHaan
cb3d26c500 Merge pull request #2084 from johanwiren/zfs
Added zfs module
2013-02-16 10:37:58 -08:00
Michel Blanc
0cd0a7fda3 Fixes jina typos
Moved *jina* to *jinja2*
2013-02-16 13:32:48 -05:00
Michel Blanc
1c22f2146e Adds configurable jinja2 extension loading
Jinja extensions adds features to the jinja2 templating engine. This
patch allows module loading for the templating engine vian an
ansible.cfg configuration key (jinja_extensions).
The default behaviour doesn't change (no module loading).
Requested modules can be added coma separated in ansible.cfg

Adds whitespace handling in jinja_extension config

Added whitespace handling in jinja_extension configuration directive, so
things stay safe if user adds spaces around comas in the directives
list.

Adds config example for jinja_extensions

Added config example with multiple extentions for jinja_extensions
2013-02-16 13:32:48 -05:00
Johan Wirén
94813d38e6 Added zfs example playbook 2013-02-14 14:16:33 +01:00
Chris Hoffman
32c7fa7f70 Remove unneccesary quotes from user task 2013-02-10 14:32:43 -05:00
Michael DeHaan
b2b1900765 minor aesthetics tweak 2013-02-10 13:20:19 -05:00
Michael DeHaan
b1c739889c Add example of working with the environment 2013-02-10 13:08:16 -05:00
Michael DeHaan
790cc11f03 Change the 0.X part to not imply something new was added in 0.X something if a user forgets to put in a specific version in the module docs. 2013-02-09 14:44:10 -05:00
Matt Cordial
3284fd607f Add rabbitmq_vhost module.
Simply ensures existence or non-existence of a vhost.
2013-02-09 11:28:41 -07:00
Chris Hoffman
6f7855161c Adding rabbitmq modules 2013-02-09 11:55:23 -05:00
Daniel Hokka Zakrisson
5268d49bad Add sudo_flags configuration option to alter sudo behaviour
Default to -H to set $HOME appropriately.
2013-01-28 17:41:43 +01:00
Daniel Hokka Zakrisson
53fd85e2c4 Merge pull request #1903 from leucos/mergeable-hash-vars
Adds user-selectable hash merging support in vars
2013-01-25 08:29:05 -08:00
Francesc Esplugas
c6629219d9 Update examples/playbooks/ansible_pull.yml
Typo
2013-01-24 17:29:50 +01:00
Michel Blanc
e28e538c6e Adds user-selectable hash merging support in vars
Hash variables are currently overriden if they are redefined. This
doesn't let the user refine hash entries or overriding selected keys,
which can, for some, be a desirable feature.
This patch let the user force hash merging by setting the
hash_behaviour value to "merge" (without the quotes) in ansible.cfg

However, by default, ansible behaves like it always did and if any value
besides "merge" is used ("replace" is suggested in the example ansible.cfg
file), it will also behave as always.
2013-01-23 21:39:34 +01:00
Daniel Hokka Zakrisson
a4b22b3a30 Merge pull request #1894 from ron1/devel
Update examples/ansible.cfg with sudo_exe
2013-01-23 02:35:37 -08:00
ron1
7d67ecfb2d Update examples/ansible.cfg with sudo_exe 2013-01-23 00:58:16 -05:00
Michael DeHaan
ef38e9f0e6 Merge pull request #1875 from cocoy/vars_prompt_default
Adding default on vars_prompt
2013-01-21 06:57:50 -08:00
Rodney Quillo
7ae100611c Adding default on vars_prompt 2013-01-18 19:00:57 +08:00
fdavis
a278a60c34 add filter_plugins to example ansible.cfg 2013-01-17 13:13:02 -08:00
Dag Wieers
66fb7fd9de Make use of yes/no booleans in playbooks
At the moment Ansible prefers yes/no for module booleans, however booleans in playbooks are still using True/False, rather than yes/no. This changes modifies boolean uses in playbooks (and man pages) to favor yes/no rather than True/False.

This change includes:

- Adaptation of documentation and examples to favor yes/no
- Modification to manpage output to favor yes/no (the docsite output already favors yes/no)
2012-12-14 11:56:53 +01:00
Michael DeHaan
3dc31a049f Merge pull request #1527 from fdavis/devel
Support scp in an ssh connection
2012-11-08 16:42:37 -08:00
fdavis
b91896ff55 move scp_if_ssh to the ssh connection category 2012-11-08 11:51:24 -08:00
fdavis
b1dbeec66c Allows use of scp instead of sftp in
Added a boolean constant scp_if_ssh to the config
Added scp support for the ssh connection plugin
Refers to #1279
2012-11-05 14:25:40 -08:00
Jeroen Hoekx
8ffed6df75 Support custom jinja2 filters.
This uses the plugin framework to add filter plugins.
The previously hardcoded core filters are defined using the plugin
framework now.
2012-11-05 15:11:34 +01:00
Michael DeHaan
6f938c9f4c Merge branch 'playbook_ssh_ask_pass' of git://github.com/clatour/ansible into devel
Conflicts:
	examples/ansible.cfg

+ doc tweak
2012-11-03 19:23:38 -04:00
Chandler Latour
f436a8c88b Added config option for default ask for ssh_pass 2012-11-02 10:53:26 -05:00
Brian Coca
8d1ed566da corrected mizpells environment
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
2012-11-02 08:20:17 -04:00
Brian Coca
6877a88c7e added comment to example config to show usage of new sudo password asking option
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
2012-11-01 08:13:10 -04:00
Michael DeHaan
cceb99acd5 Simplify the group_by example a small bit 2012-10-30 20:00:21 -04:00
Jeroen Hoekx
b336d40101 Add a group_by action plugin. 2012-10-29 13:10:23 +01:00
Michael DeHaan
457cdb2be0 Add note about when you still have to use only_if 2012-10-27 18:22:16 -04:00
Michael DeHaan
21258dcc66 Added 'when' as a shortcut around only_if. 2012-10-27 17:55:35 -04:00
Michael DeHaan
7f6aa2d3d5 Config parameter rename 2012-10-26 20:19:09 -04:00
Michael DeHaan
6ba30170dd Make group_vars and host_vars available to usr/bin/ansible, and make vars_plugins exist 2012-10-26 19:55:59 -04:00
Jeremiah Heller
37bdefae74 add role_attr_flags parameter to postgresql_user
Pass role_attr_flags a list of comma separated role
attributes when creating or updating a user.
2012-10-15 16:03:10 -07:00
Michael DeHaan
7b6f8e485a refine example 2012-10-12 21:39:35 -04:00
Michael DeHaan
971dd53622 Added documentation on looping over with_* like fileglob 2012-10-12 20:15:13 -04:00
Michael DeHaan
7644dbe330 Update some examples to explain why notify is not used 2012-10-12 18:12:22 -04:00
Tim Bielawa
4b04d7a914 Add DOCUMENTATION for module documentation. 2012-10-12 17:22:55 -04:00
Jan-Piet Mens
9ed59da294 Allow user-specified $ansible_managed string with named parameters 2012-10-04 08:50:51 +02:00
Michael DeHaan
57c9534abb Simplify register example 2012-09-29 08:10:45 -04:00
Michael DeHaan
08b70949c7 Fix a test and a typo in an example 2012-09-18 21:10:07 -04:00
Matthew Johnson
0f5a4e2112 add logrotate config 2012-09-14 14:01:44 -04:00
Lorin Hochstein
869a97e1cb Fix comment in example config file.
The config file incorrectly mentions the --private-key-file flag.
Should be --private-key
2012-09-07 14:34:36 -04:00
Michael DeHaan
f07772b74b update playbook example 2012-08-28 20:27:17 -04:00
Michael DeHaan
b65a2dbd4d Merge pull request #952 from dagwieers/patch-1
Disable PasswordAuthentication when using -c ssh
2012-08-28 17:25:35 -07:00
Mark Theunissen
bfe3e97e63 Update the example playbook for the new MySQL parameter format 2012-08-28 17:51:12 -05:00
Dag Wieers
30f4f83a4c Disable PasswordAuthentication when using -c ssh
If PasswordAuthentication is enabled (which is the default) ansible 
will spawn (multiple) ssh's with a password-prompt which corrupts 
the terminal, and cannot be properly used.

So it is better to not allow for password-based authentication using 
-c ssh. The result is that authentication fails but Ansible 
continues to work
2012-08-28 16:28:08 +03:00
Michael DeHaan
861c258856 Merge pull request #947 from elventear/postgresql_user
Missing change for postgresql example playbook
2012-08-27 18:10:37 -07:00
Pepe Barbe
6f3a507a54 typo 2012-08-27 10:12:34 -05:00
Pepe Barbe
a2627e0b54 fix example 2012-08-27 10:09:55 -05:00
Michael DeHaan
9fa014f76d Fix uptime example in examples/scripts 2012-08-24 19:32:24 -04:00
Michael DeHaan
ffdca762fa Add template example so I don't have to remember how it works 2012-08-21 20:46:11 -04:00
Michael DeHaan
1004e56d65 Moved inventory scripts to the ansible/ansible-plugins repo so they can be updated independent of release. 2012-08-20 19:57:45 -04:00
Michael DeHaan
5effbd4ff5 add note about 'local_action' 2012-08-20 18:26:22 -04:00
Grzegorz Nosek
76419a9fdf Point to the proper config file
The global config file is loaded from /etc/ansible, not /etc
2012-08-20 21:31:52 +02:00
Michael DeHaan
9aa41f075d Add examples of the 'serial' and 'delegate_to' keywords to examples/playbooks. 2012-08-18 10:11:17 -04:00
Michael DeHaan
9851066f4d Adding ability to set ssh args from config file 2012-08-14 20:13:02 -04:00
Michael DeHaan
1cadfcbf61 amend default library location in config file 2012-08-13 20:08:03 -04:00
Michael DeHaan
62fbbf7653 config file support 2012-08-13 19:17:59 -04:00
Michael DeHaan
05a128c2be Add ability to store and access module results later on in the play. See examples/playbooks/register_logic for details. 2012-08-10 01:13:37 -04:00
Michael DeHaan
ce015fcaf8 add output of password step for easy testing 2012-08-09 21:42:47 -04:00
Rodney Quillo
d1f821361d vars_prompt encrypt from mgw 2012-08-09 22:56:40 +08:00
Michael DeHaan
0810f26095 whitespace 2012-08-06 20:02:02 -04:00
Michael DeHaan
a1b4123931 whitespace 2012-08-06 20:00:31 -04:00
Lorin Hochstein
5a109154f1 Rename: postgresql.yaml -> postgresql.yml 2012-07-29 13:52:30 -04:00
Lorin Hochstein
dcd214a631 Use standard argument names in PostgreSQL modules
passwd -> password
loginpass -> login_password
loginuser -> login_user
loginhost -> login_host

Add an example playbook that shows how to use the modules.
2012-07-29 12:52:14 -04:00
Michael DeHaan
ee5f12cd40 Slight tweaks on vars_prompt upgrades 2012-07-27 19:00:48 -04:00
Petros Moisiadis
c717934b7e Improved 'vars_prompt' syntax to support prompt text and (non-)private input
An example of the new syntax:

vars_prompt:
 - name: 'secret_variable_name"
   prompt: "Enter secret value: "
   private: "yes"
 - name: "nonsecret_variable_name"
   prompt: "Enter non-secret value: "
   private: "no"
2012-07-27 19:00:48 -04:00
Michael DeHaan
8fa4dc3920 Small change to previous patch, make ranges of hosts inclusive. 2012-07-24 20:10:05 -04:00
Chin Fang
e3b2521f01 Added a host expansion feature to ansible's inventory parsing 2012-07-24 12:38:52 -07:00
Michael DeHaan
fdf14ec7ab fix module name in examples 2012-07-23 21:06:24 -04:00
Michael DeHaan
0b891fc8fb Tweaking daisychain internals to allow get_url to modify the path destination when downloading to a directory.
Minor module refactoring.
2012-07-22 11:08:16 -04:00
Michael DeHaan
46650cfcec Merge branch 'get_url3' of https://github.com/jpmens/ansible into devel 2012-07-22 10:08:27 -04:00
Jan-Piet Mens
b8d7b5041b new module: get_url
get module (with new module-magic-code!)
	Usage: ansible -m get -a "url=http://xxxxxxx  dest=fileordirctory"
	all cleanups as per @mpdehaan's suggestions
	add daisychain
	added example playbook (get_url.yml) with URLencode example
2012-07-21 13:34:42 +02:00
Michael DeHaan
5a67a556cd Script to migrate YAML users to the INI format, so we can deprecate YAML inventory (which we are now doing). 2012-07-20 11:15:57 -04:00
Peter Sankauskas
3f17ad62cd Squashed commit of the following:
commit 5b9d29e08fba6402efccaa1ca56d834ff58f4b55
Merge: 7286f3a 111561f
Author: Michael DeHaan <michael.dehaan@gmail.com>
Date:   Sun Jul 15 14:34:10 2012 -0400

    Merge branch 'devel' of https://github.com/pas256/ansible into pasec2

commit 111561f782
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Mon Jul 16 16:13:48 2012 -0700

    Reading the config file from the same directory as the script, and
    fixing typo in security group name

commit e63659d04e
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Mon Jul 16 10:56:59 2012 -0700

    Adding list of variables to documentation

commit d0aecf025e
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Fri Jul 13 15:35:00 2012 -0700

    Finished EC2 external inventory script

commit 136b8a5082
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Thu Jul 12 18:01:44 2012 -0700

    Almost done, just a few more types to deal with

commit 09f92052ce
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Tue Jul 10 23:43:30 2012 -0700

    Adding region options to config, and getting host details happening, but
    need to figure out complex types

commit a940c9b8fb
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Tue Jul 10 18:06:05 2012 -0700

    Converting to a class, commenting methods, reading settings from a
    config file, and starting to work on the host variables

commit 43eb3214a6
Author: Peter Sankauskas <pas256@gmail.com>
Date:   Mon Jul 9 13:11:27 2012 -0700

    First pass of the Ansible EC2 inventory script
2012-07-15 14:34:24 -04:00
Michael DeHaan
279b5965b8 Much streamlining around setup steps in playbooks, now only run setup once per play. 2012-07-14 12:24:19 -04:00
Michael DeHaan
86c25fd82d Merge pull request #590 from marktheunissen/mysql
The MySQL modules
2012-07-14 07:48:27 -07:00
Mark Theunissen
f47cc1693d The MySQL modules 2012-07-13 17:07:23 -05:00
Michael DeHaan
bcd0001cb1 Bring the cobbler external inventory script up to date with current usage (--list, --host hostname) 2012-07-12 01:05:49 -04:00
Michael DeHaan
611e5b0c90 Make adding tags to a playbook work as shorthand to tagging all tasks in the play. 2012-07-12 00:58:48 -04:00
Michael DeHaan
a765deccce Allow top level playbook files to import other playbook files, added some basic
playbook structure checking.
2012-07-12 00:19:44 -04:00
Michael DeHaan
969c3feb13 Allow include statements from plays to specify tags (see tags.yml example file).
Also be smart and don't run a play at all if no tasks in the play match any of the tags specified.  This includes not running the setup actions!
2012-07-11 20:33:46 -04:00
Michael DeHaan
83f23ef861 Basic support for tagging tasks and selecting a subset of tasks to run with --tags. 2012-07-11 19:51:26 -04:00
Michael DeHaan
b9b53d1941 Playbook refactoring -- work in progress. 2012-05-26 00:37:34 -04:00
Michael DeHaan
9bb8e8e36d Don't use template syntax in non-templates, it's not the default anymore 2012-05-08 00:09:04 -04:00
Michael DeHaan
39e791a1d3 Log last execution of ansible-pull to /var/log/ansible-pull.log
TODO: logrotate script and append to log instead.
2012-05-05 12:18:04 -04:00
Michael DeHaan
adca320490 Change defaults so people have to make conscious decisions about pull setup. 2012-05-01 23:25:19 -04:00
Michael DeHaan
a33320d03d Add some comments to ansible-pull and the example playbook 2012-05-01 23:22:23 -04:00
Stephen Fromm
23ff967f38 Copy inventory file to client 2012-05-02 09:51:19 -07:00
Stephen Fromm
3803b27f6c Add playbook and template to set up ansible-pull
Playbook will install ansible, create directory where git checkout goes,
and set up a cron job to run ansible-pull.
2012-05-02 09:51:19 -07:00
Michael DeHaan
0d5bee2dfa Revert "Revert "Actually wait for password prompt in remote sudo execution. Totally breaks stderr debugging"
This reverts commit e16114034c.

Conflicts:

	lib/ansible/connection.py
2012-04-27 00:46:17 -04:00
Michael DeHaan
f939f3fdaf Playbook can now take a 'name' which it will show when starting the play 2012-04-27 00:08:06 -04:00
Michael DeHaan
aa8ae85070 Add playbook example for first_available_file 2012-04-26 23:03:14 -04:00
Stephen Fromm
bcfa6a7865 Add another example to file_secontext.yml
Demonstrate what happens when there is no default context in the policy.
2012-04-22 00:14:40 -07:00
Stephen Fromm
0f044e64f8 Add example playbook of file module's selinux capabilities 2012-04-21 23:30:08 -07:00
Michael DeHaan
8a027415d0 Port shouldn't be in this example 2012-04-16 22:04:23 -04:00
Michael DeHaan
08468dcb0c Fixes to make ports DWIM. 2012-04-16 21:52:15 -04:00
Michael DeHaan
31d4ee32d1 Looping! With items! See examples/playbook/loop_with_items.yml for details 2012-04-14 09:55:24 -04:00
Michael DeHaan
2cb89c12e3 Add documentation for vars_prompt 2012-04-02 20:37:59 -04:00
Michael DeHaan
88dab0db2d Add prompts example 2012-04-02 20:35:51 -04:00
Michael DeHaan
2372a3b734 Sudo support operational in both playbooks and main program. Implementation could use some cleanup. 2012-03-29 22:59:29 -04:00
Michael DeHaan
a05b75dbbb Merge pull request #101 from sfromm/user-module
Supplementary group membership now in users module
2012-03-28 16:24:26 -07:00
Stephen Fromm
c1e223c424 Remove errant option on password modification action 2012-03-28 14:50:26 -07:00
Stephen Fromm
e851f7542f Update group_commands playbook example
Remove the group membership example.  There's not much to twiddle with
the group module.  Give examples for what is possible.
2012-03-28 14:32:56 -07:00
Stephen Fromm
4ed971574f Update user_commands playbook with supplementary group examples 2012-03-28 14:24:13 -07:00
Stephen Fromm
b373c6c223 Add playbook to demonstrate use of group module 2012-03-26 23:04:30 -04:00
Stephen Fromm
8592b3b40d Update user module to support group name
This changes the gid option to group.  One may provide a primary group
as either a gid or a name.  The module will then check to verify that
the group already exists.  If the group does not already exist, the
module will fail.
2012-03-26 23:03:09 -04:00
Michael DeHaan
292ac4aad2 Make it such that the 'name' element of each playbook line is optional. 2012-03-23 21:06:54 -04:00
Michael DeHaan
3814a46bbf Move playbook for user commands into examples dir 2012-03-22 00:33:10 -04:00
Michael DeHaan
a8c921cbcc Allow groups to be passed to runner API to make parse_hosts optional, misc fixes as a result of refactoring in Runner.
Cleanup in Playbooks module is next.
2012-03-22 00:30:05 -04:00
Michael DeHaan
fef73393f0 rename example files 2012-03-21 22:21:42 -04:00