All Projects → purpleidea → Mgmt

purpleidea / Mgmt

Licence: other
Next generation distributed, event-driven, parallel config management!

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Yacc
648 projects
Makefile
30231 projects
python
139335 projects - #7 most used programming language
Smarty
1635 projects

Projects that are alternatives of or similar to Mgmt

Awesome Scalability
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Stars: ✭ 36,688 (+1254.8%)
Mutual labels:  devops, distributed-systems
Zookeeper
Apache ZooKeeper
Stars: ✭ 10,061 (+271.53%)
Mutual labels:  distributed-systems, configuration-management
Kapo
Wrap any command in a status socket
Stars: ✭ 45 (-98.34%)
Mutual labels:  configuration-management, devops
Gosiris
An actor framework for Go
Stars: ✭ 222 (-91.8%)
Mutual labels:  etcd, distributed-systems
Apollo.net
Apollo配置中心.Net客户端
Stars: ✭ 165 (-93.91%)
Mutual labels:  configuration-management, config-management
Config Rs
⚙️ Layered configuration system for Rust applications (with strong support for 12-factor applications).
Stars: ✭ 915 (-66.21%)
Mutual labels:  configuration-management, config-management
Envkey App
Secure, human-friendly, cross-platform secrets and config.
Stars: ✭ 83 (-96.94%)
Mutual labels:  configuration-management, devops
Gaia
Build powerful pipelines in any programming language.
Stars: ✭ 4,534 (+67.43%)
Mutual labels:  devops, distributed-systems
Etcd Cloud Operator
Deploying and managing production-grade etcd clusters on cloud providers: failure recovery, disaster recovery, backups and resizing.
Stars: ✭ 149 (-94.5%)
Mutual labels:  etcd, distributed-systems
Genie
Distributed Big Data Orchestration Service
Stars: ✭ 1,544 (-42.98%)
Mutual labels:  configuration-management, distributed-systems
Opsmop
DISCONTINUED: permanent copy of fork lives at github.com/mpdehaan/opsmop
Stars: ✭ 725 (-73.23%)
Mutual labels:  configuration-management, devops
Habitat
Modern applications with built-in automation
Stars: ✭ 2,334 (-13.81%)
Mutual labels:  configuration-management, distributed-systems
Apollo
Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
Stars: ✭ 26,052 (+862.04%)
Mutual labels:  configuration-management, config-management
Blog
my blog, using markdown
Stars: ✭ 25 (-99.08%)
Mutual labels:  etcd, distributed-systems
Ini Parser
Read/Write an INI file the easy way!
Stars: ✭ 643 (-76.26%)
Mutual labels:  configuration-management, config-management
Stonic
Stonic Application
Stars: ✭ 61 (-97.75%)
Mutual labels:  configuration-management, devops
Burry.sh
Cloud Native Infrastructure BackUp & RecoveRY
Stars: ✭ 260 (-90.4%)
Mutual labels:  etcd, distributed-systems
Rudder
Continuous Auditing & Configuration
Stars: ✭ 314 (-88.4%)
Mutual labels:  configuration-management, devops
Etcd
Distributed reliable key-value store for the most critical data of a distributed system
Stars: ✭ 38,238 (+1312.04%)
Mutual labels:  etcd, distributed-systems
Assh
💻 make your ssh client smarter
Stars: ✭ 2,340 (-13.59%)
Mutual labels:  config-management, devops

mgmt: next generation config management!

mgmt!

Go Report Card Build Status Build Status GoDoc IRC Patreon Liberapay

About:

Mgmt is a real-time automation tool. It is familiar to existing configuration management software, but is drastically more powerful as it can allow you to build real-time, closed-loop feedback systems, in a very safe way, and with a surprisingly small amout of our mcl code. For example, the following code will ensure that your file server is set to read-only when it's friday.

import "datetime"
$is_friday = datetime.weekday(datetime.now()) == "friday"
file "/srv/files/" {
	state => $const.res.file.state.exists,
	mode => if $is_friday { # this updates the mode, the instant it changes!
		"0550"
	} else {
		"0770"
	},
}

It can run continuously, intermittently, or on-demand, and in the first case, it will guarantee that your system is always in the desired state for that instant! In this mode it can run as a decentralized cluster of agents across your network, each exchanging information with the others in real-time, to respond to your changing needs. For example, if you want to ensure that some resource runs on a maximum of two hosts in your cluster, you can specify that as well:

import "sys"
import "world"

# we'll set a few scheduling options:
$opts = struct{strategy => "rr", max => 2, ttl => 10,}

# schedule in a particular namespace with options:
$set = world.schedule("xsched", $opts)

if sys.hostname() in $set {
	# use your imagination to put something more complex right here...
	print "i got scheduled" {} # this will run on the chosen machines
}

As you add and remove hosts from the cluster, the real-time schedule function will dynamically pick up to two hosts from the available pool. These specific functions aren't intrinsic to the core design, and new ones can be easily added.

Please read on if you'd like to learn more...

Community:

Come join us in the mgmt community!

Medium Link
IRC #mgmtconfig on Libera.Chat
Twitter @mgmtconfig & #mgmtconfig
Mailing list [email protected]
Patreon purpleidea on Patreon
Liberapay purpleidea on Liberapay

Status:

Mgmt is a next generation automation tool. It has similarities to other tools in the configuration management space, but has a fast, modern, distributed systems approach. The project contains an engine and a language. Please have a look at an introductory video or blog post.

Mgmt is a fairly new project. It is usable today, but not yet feature complete. With your help you'll be able to influence our design and get us to 1.0 sooner! Interested users should read the quick start guide.

Documentation:

Please read, enjoy and help improve our documentation!

Documentation Additional Notes
quick start guide for everyone
frequently asked questions for everyone
general documentation for everyone
language guide for everyone
function guide for mgmt developers
resource guide for mgmt developers
style guide for mgmt developers
godoc API reference for mgmt developers
prometheus guide for everyone
puppet guide for puppet sysadmins
development for mgmt developers

Questions:

Please ask in the community! If you have a well phrased question that might benefit others, consider asking it by sending a patch to the FAQ section. I'll merge your question, and a patch with the answer!

Get involved:

Feel free to grab one of the straightforward #mgmtlove issues if you're a first time contributor to the project or if you're unsure about what to hack on! Please get involved by working on one of these items or by suggesting something else! There are some lower priority issues and harder issues available in our TODO file. Please have a look.

Bugs:

Please set the DEBUG constant in main.go to true, and post the logs when you report the issue. Feel free to read my article on debugging golang programs.

Patches:

We'd love to have your patches! Please send them by email, or as a pull request.

On the web:

Read what people are saying and publishing about mgmt!

Happy hacking!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].