Skip to content

Instantly share code, notes, and snippets.

View sivel's full-sized avatar
😏

Matt Martz sivel

😏
View GitHub Profile
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# (c) 2016, Matt Martz <matt@sivel.net>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
@sivel
sivel / inventory2json.py
Last active December 19, 2023 01:54
Ansible inventory to dynamic inventory JSON output, accepts all inventory input formats
import sys
import json
from ansible.parsing.dataloader import DataLoader
try:
from ansible.inventory.manager import InventoryManager
A24 = True
except ImportError:
from ansible.vars import VariableManager
@sivel
sivel / ansible-git.md
Last active October 16, 2023 16:44
Ansible Contributors Guide for working with git/GitHub

Ansible Contributors Guide for working with git/GitHub

First Note

Never, ever, modify or commit things to devel, always do work in a feature branch

Setting up the ansible and modules repos from forks

export GITHUB_USER=sivel
@sivel
sivel / diff.diff
Created February 24, 2016 20:27
diff of changes made to inspect module arguments
diff --git a/hacking/test-module b/hacking/test-module
index d9f19b7..511be8b 100755
--- a/hacking/test-module
+++ b/hacking/test-module
@@ -138,8 +138,6 @@ def boilerplate_module(modfile, args, interpreter, check, destfile):
)
modfile2_path = os.path.expanduser(destfile)
- print("* including generated source, if any, saving to: %s" % modfile2_path)
- print("* this may offset any line numbers in tracebacks/debuggers!")
@sivel
sivel / gist:a641a7d121c3cc7c8fbf
Created February 23, 2016 21:50
copy recursive force=false
diff --git a/test/integration/roles/test_copy/tasks/main.yml b/test/integration/roles/test_copy/tasks/main.yml
index edae89f..f15559d 100644
--- a/test/integration/roles/test_copy/tasks/main.yml
+++ b/test/integration/roles/test_copy/tasks/main.yml
@@ -174,6 +174,24 @@
that:
- "not copy_result5|changed"
+- name: test recursive copy to directory sub2
+ copy: src=subdir dest={{output_dir}}/sub2 directory_mode=0700 force=false
@sivel
sivel / dump.j2
Created February 9, 2016 21:25
Create Ansible host vars dump for all hosts
{
{% for host in groups.all %}
"{{ host }}": {{ hostvars[host]|to_json }}{{ ',' if not loop.last else '' }}
{% endfor %}
}
diff --git a/lib/ansible/playbook/play_context.py b/lib/ansible/playbook/play_context.py
index 1804a03..3703062 100644
--- a/lib/ansible/playbook/play_context.py
+++ b/lib/ansible/playbook/play_context.py
@@ -80,6 +80,13 @@ MAGIC_VARIABLE_MAPPING = dict(
su_flags = ('ansible_su_flags',),
)
+MAGIC_VARIABLE_UNDEFINED = [
+ 'remote_addr',
@sivel
sivel / go-build.sh
Last active September 28, 2023 18:40
Ansible Binary Golang Module
go build helloworld.go
GOOS=windows GOARCH=amd64 go build helloworld.go
@sivel
sivel / etc_hosts.py
Created June 22, 2015 18:45
Ansible inventory script that uses /etc/hosts as it's data source
#!/usr/bin/env python
# (c) 2015, Matt Martz <matt@sivel.net>
#
# This file is part of Ansible.
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
@sivel
sivel / rackspace.py
Last active August 29, 2015 14:23
python-openstacksdk Rackspace API Key Authenticator
from openstack.auth.identity.v2 import Password
class ApiKey(Password):
valid_options = {
'access_info',
'auth_url',
'username',
'user_id',
'password',