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
Relates to #19. Prevents testing as well.
Current it's setting them as root.
Similar to previous henchman. Number of tasks, success, etc. Maybe have counters for each host.
Getting an empty string when plan.Name
is being accessed
Port it over from github.com/sudharsh/henchman
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.
Template module should allow support for pongo template.
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.
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
Due to this issue,
golang/go#6376
Look into both the ansible and salt way. Hammock drive develop this!
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.
Setting a custom modules part gives a module not resolved error all the time
Have a .retry file of some sort
Use them as enumerators instead.
❯❯❯ 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
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)
Where the key is the group name that can be globbed and the value is the list of all machines
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.
Requires completion of main.go
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
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}
Put it up in the wiki
Be able to specify groups, homedir..etc
Setting a custom modules part gives a module not resolved error all the time
Needed for local_action
It's being unused currently
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.