apigee / henchman Goto Github PK
View Code? Open in Web Editor NEWOrchestration and Automation tool
License: BSD 2-Clause "Simplified" License
Orchestration and Automation tool
License: BSD 2-Clause "Simplified" License
Setting a custom modules part gives a module not resolved error all the time
Come up with a build script that produces tarballs for distribution for multiple archs. It would have the modules directory as part of the tarball as well and should be self-contained.
Requires completion of main.go
Be able to specify groups, homedir..etc
Relates to #19. Prevents testing as well.
Have a .retry file of some sort
❯❯❯ go get -u github.com/apigee/henchman
warning: code.google.com is shutting down; import path code.google.com/p/go-uuid/uuid will stop working
warning: code.google.com is shutting down; import path code.google.com/p/go.crypto/ssh will stop working
code.google.com/p/go-uuid/uuid => https://github.com/pborman/uuid
code.google.com/p/go.crypto/ssh => https://godoc.org/golang.org/x/crypto/ssh
Due to this issue,
golang/go#6376
Currently the YAML unmarshaller (including the custom ones) cannot handle multiple include cases:
name: "Sample plan"
vars:
hello: world
foo: scar
include:
- test/vars/vars.yaml
include:
- test/vars/vars2.yaml
spam: eggs
tasks:
- name: Sample task that does nothing
action: cmd="ls"
- name: Second task
action: cmd="echo"
ignore_errors: true
This won't throw a "multiple includes error" it will just take any value from any include field (depends on which value was added last) as long as the include value follows the right format.
Template module should allow support for pongo template.
Inventories should follow a...
---
groups (required):
group_name (required):
hosts (required):
- "192.168.1.1"
- "192.168.1.2"
vars (optional):
ulimit: 300
henchman_keyfile: "~/.ssh/ssh_key"
app:
hosts:
- "1.1.1.1"
- "1.1.1.4"
hostvars (optional):
"192.168.1.1":
keyfile: "~/.ssh/another_key"
henchman_user: "root"
ulimit: 240
files: 240
"1.1.1.1":
ulimit: 240
files: 240
Currently task run does an 'exec', 'put', 'exec'. This sequence is not valid for all kinds of modules. We need to define a way of doing it
Eg. modules like 'copy' that copy stuff from one location to another on the box or by default copy from the henchman machine to the remote machine just do a put and exec ( when permissions are changed)
Setting a custom modules part gives a module not resolved error all the time
Put it up in the wiki
Complex modules can be a folder that has all the dependencies as part of the module directory. The entry point of such module should be an 'exec' script. Can bundle dependencies of the module as part of its directory.
Requires changes in the executor to figure out if the module being executed is a file or a directory.
Needed for local_action
Getting an empty string when plan.Name
is being accessed
Current it's setting them as root.
Port it over from github.com/sudharsh/henchman
Where the key is the group name that can be globbed and the value is the list of all machines
We're passing it as one of the parameters to inventoryLoader interface. This is wrong as this assumes that the transport is going to be same for all the machines. This may not be the case and they may have different configurations. Different transport among different machines is a possibility too.
Similar to previous henchman. Number of tasks, success, etc. Maybe have counters for each host.
Look into both the ansible and salt way. Hammock drive develop this!
Example:
shell: cmd="sed -i 's,conf_security_ldap.user.store.enable=true,conf_security_ldap.user.store.enable=false,g' {{ vars.edge_mgmt_token_file }}"
Error:
2015/10/16 17:52:50 Module shell: Module args are invalid
It's being unused currently
Using only std python libs (httplib, urllib, urllib2).
httplib - is a parsing nightmare
urllib/urllib2 can only handle GET and POST
OR
Find a way to use without stdlibs that won't cause dependency probs.
Checkout issue #44
For now have it use basic RESTful calls.
result["output"] = {'status': status_code, 'headers': headers, 'body': body}
Use them as enumerators instead.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.