outbit / bandicoot Goto Github PK
View Code? Open in Web Editor NEWUI for the Data Center and Cloud.
License: MIT License
UI for the Data Center and Cloud.
License: MIT License
allow options passed to an action, to resolve in the action dict. if an action was defined to use limit={{option.limit}}, this should be definable through options in limit=something.
For example:
outbit> actions add category=/services/webserver action=restart plugin=ansible source_url=”git://...” git_login={{ gitlogin }} git_key={{ gitkey }} playbook=test.yml sudo=yes user={{ login.name }} private-key={{ login.key }} limit={{ option.limit }}
should be usable where the limit is set to testservers
outbit> services webserver restart limit=testservers
Histogram for the below:
Jobs run per user.
Changes run per system.
Jobs run over time.
outbit> stats
0 10 20 30 40 50
user1 *******
user2 **********
user3 *****************
outbit> stats type=users
0 10 20 30 40 50
user1 *******
user2 **********
user3 *****************
outbit> stats type=system
0 10 20 30 40 50
server1 *******
server2 **********
server3 ***
outbit> stats type=jobs
0 10 20 30 40 50
07/2016 *******
08/2016 **********
[a-zA-Z0-9_-/]+ is only supported for the category. and [a-zA-Z0-9_-]+ for the action.
-David
Look in ./lib/outbit/modules/ and user defined locations in the configuration file or a param through commandline.
-David
For example:
outbit 'help'
...
..
outbit 'testing ls; testing pwd'
...
..
mongodb traffic should be encrypted and should use authentication.
Add ability an edit action to every category (users, roles, actions).
Standard feature for CLI
search path ./.outbit.conf,~/.outbit.conf,/etc/outbit.conf
you should be able to use secret variables throughout the outbit cli.
you should be able to define secrets as being a file or just text used inline.
if its a file it will write it to a temporary file when the plugin is executed and the variable will resolve to its path.
if its text, i will use jinja2 to parse the options string to the plugin and it will fill in the secret variables with the actual secret.
secrets will be integrated with roles so they can be shared with specific users.
secrets should be encrypted at rest in the mongodb database.
outbit> roles edit name=super users=superadmin actions=/
action not found
might need to change:
t_OPTIONVAL =r'/[a-zA-Z0-9_/-]+'
to
t_OPTIONVAL =r'/[a-zA-Z0-9_/-]*' or r'[a-zA-Z0-9_/-]+'
outbit should integrate with ldap for authentication
Currently its just in memory it should be preserved in the mongodb
Use options_validator decorator as an example. This would provide a standard way to error if an unsupported option is provided, not all plugins would implement but its very useful for some.
Should be able to check status of queued actions.
If secret type=file, create a temporary file, set the variable to the temp filename when rendering. decrypt the secret and put it in the file. Delete the temporary file when the plugin is finished.
This is to support the ability to run the following:
outbit> actions add category=/testing/ action=ssh plugin=command command_run=”ssh -i {{secret.sshkey}} {{ option.host }}” desc="testing"
At its current state it does not support python3. Unit tests only work for python 2.7, however it seems to work on 2.6 as well.
Currently you get "action not known"
actions add category=testing/
actions edit category=/testing/
actions edit category=testing
The above should be ok, currently it breaks things.
If no leading /, add one. If trailing slash exists, remove it. Should be a simple fix. in actions add and actions edit.
On the first login with the default password, make it so the user is forced to change the password to something unique.
Automate for Mac, CentOS, and Debian.
category=/ should be ok
Its a standard bashism
Such as passwords or secrets.
for example:
is_secure: True
doesnt work
Not all plugins should allow the full range of values the lexer allows, each plugin should do some of its own validation.
Add the ability for role permissions to be modified.
Add the ability to add users to a role.
Add the ability to add actions to a role.
Configure a default role that is a super role, that has permission to everything.
Make it so roles are enforced.
Use options_validator as a reference.
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.