Skip to content

Instantly share code, notes, and snippets.

View vmware-deploy-ovf-inject.diff
diff --git a/lib/ansible/modules/cloud/vmware/ b/lib/ansible/modules/cloud/vmware/
index 6eb690baed..0fe301a301 100644
--- a/lib/ansible/modules/cloud/vmware/
+++ b/lib/ansible/modules/cloud/vmware/
@@ -56,6 +56,12 @@ options:
default: thin
- Disk provisioning type.
+ enable_hidden_properties:
+ description:

Selective Restores on macOS

Note: This post is not yet finished

I have owned a Mac continuously for the last 8 years as part of my job and used it full time both professionally and personally. Over that time I have carried a lot of crap from machine to machine, and a lot of that was very work specific. Certs, credentials, applications, and other various configurations and files. I've always just performed a full Time Machine restore each time I upgraded.

I recently switched employers, and wanted to start mostly fresh, but with the ability to keep some of the more generic configurations on my Mac like VIM configurations, and the ability to bring over personal files. I wasn't sure how I was going to approach this at first. I imagined, that I would just take a Time Machine backup, perform a fresh install, and then use the Migration Assistant to uncheck some things I don't want.

Using the Time Machine backup and Migration Assistant, seemed like a great idea, although Migration Assistant doesn't give y

sivel / cprofile-callback.txt
Last active Nov 19, 2018
Ansible callback plugin to profile code execution via cProfile
View cprofile-callback.txt
$ ANSIBLE_CALLBACK_WHITELIST=cprofile CPROFILE_FILTERS=ansible.plugins.connection,ansible.executor.task_executor ansible-playbook -i localhosts whoami.yml
PLAY [My Cool Play] **************************************************************************************************************************************************************************************************************************
TASK [Check who I am 1] **********************************************************************************************************************************************************************************************************************
changed: [localhost0]
changed: [localhost1]
TASK [Check who I am 2] **********************************************************************************************************************************************************************************************************************
changed: [localhost0]
sivel /
Last active Jan 24, 2019
This is a brain dump of all of the Ansible performance related things that sivel knows

Perf things that I know

As you will note while reading this, I haven't provided numbers to back up these statements. We'll get there eventually, so while I have experience with some of these, others are more "theoretical" based on my knowledge.

Fact gathering

  • the default of gather_subset: [all] can consume a lot of RAM, and with a higher fork count causes CPU contention processing results in the main process. The CPU penalty is lessened with deepdish in 2.7
  • [min] is largely what people need and less impactful. This can be set via ansible.cfg as a default
  • Not gathering facts when they aren't needed is a boost
View 00-output.txt
vars_secret_funky_json: !vault |
"vars_secret_funky_json": {
View AnsibleJSONDecoder-object_hook.diff
diff --git a/lib/ansible/parsing/ b/lib/ansible/parsing/
index 7444a9f403..36c693dead 100644
--- a/lib/ansible/parsing/
+++ b/lib/ansible/parsing/
@@ -20,33 +20,27 @@ class AnsibleJSONDecoder(json.JSONDecoder):
_vaults = {}
+ def __init__(self, *args, **kwargs):
+ kwargs['object_hook'] = self.object_hook
View github-hashicorp-packer-6379.log
2018/06/13 10:10:05 [INFO] Packer version: 1.2.4
2018/06/13 10:10:05 Packer Target OS/Arch: darwin amd64
2018/06/13 10:10:05 Built with Go Version: go1.10.1
2018/06/13 10:10:05 Detected home directory from env var: /Users/matt
2018/06/13 10:10:05 Using internal plugin for parallels-iso
2018/06/13 10:10:05 Using internal plugin for amazon-chroot
2018/06/13 10:10:05 Using internal plugin for amazon-instance
2018/06/13 10:10:05 Using internal plugin for lxd
2018/06/13 10:10:05 Using internal plugin for null
2018/06/13 10:10:05 Using internal plugin for virtualbox-ovf
sivel / with2loop.yml
Last active Sep 25, 2018
Ansible playbook showcasing conversion from with_X loops to loop using filters instead of lookup
View with2loop.yml
- name: Playbook showcasing conversion from with_X loops to loop+filters
hosts: localhost
gather_facts: false
- foo
- bar
View import_playbook_vars.diff
diff --git a/lib/ansible/playbook/ b/lib/ansible/playbook/
index 7391414949..0ec3e10e22 100644
--- a/lib/ansible/playbook/
+++ b/lib/ansible/playbook/
@@ -54,7 +54,7 @@ class Playbook:
pb._load_playbook_data(file_name=file_name, variable_manager=variable_manager)
return pb
- def _load_playbook_data(self, file_name, variable_manager):
+ def _load_playbook_data(self, file_name, variable_manager, vars=None):
sivel /
Last active Mar 26, 2018
This is an ansible callback plugin that profiles maximum memory usage of ansible per task, and displays a recap at the end
# (c) 2018 Matt Martz <>
# GNU General Public License v3.0+ (see COPYING or
# Make coding more python3-ish
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
You can’t perform that action at this time.