All Projects → madflojo → efs2

madflojo / efs2

Licence: MIT license
A dead-simple configuration management tool powered by stupid shell scripts.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to efs2

Salt
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:
Stars: ✭ 12,086 (+14639.02%)
Mutual labels:  configuration-management, remote-execution
devops-notes
My technical documentation in the SRE / DevOps paradigm.
Stars: ✭ 19 (-76.83%)
Mutual labels:  configuration-management, devops-tools
envkey-python
EnvKey's python library. Protect API keys and credentials. Keep configuration in sync.
Stars: ✭ 24 (-70.73%)
Mutual labels:  configuration-management, devops-tools
envkeygo
EnvKey's official Go client library
Stars: ✭ 36 (-56.1%)
Mutual labels:  configuration-management, devops-tools
Chef Plugin
This is jenkins plugin to run chef-client on remote host
Stars: ✭ 38 (-53.66%)
Mutual labels:  configuration-management, devops-tools
Python Dotenv
Get and set values in your .env file in local and production servers. 🎉
Stars: ✭ 4,533 (+5428.05%)
Mutual labels:  configuration-management, devops-tools
envkey-ruby
EnvKey's official Ruby client library
Stars: ✭ 24 (-70.73%)
Mutual labels:  configuration-management, devops-tools
Envkey App
Secure, human-friendly, cross-platform secrets and config.
Stars: ✭ 83 (+1.22%)
Mutual labels:  configuration-management, devops-tools
envkey-node
EnvKey's official Node.js client library
Stars: ✭ 46 (-43.9%)
Mutual labels:  configuration-management, devops-tools
agollo
🚀Go client for ctrip/apollo (https://github.com/apolloconfig/apollo)
Stars: ✭ 563 (+586.59%)
Mutual labels:  configuration-management
shell-agent
Agent program installed on remote host, help you to execute shell command on the remote host via HTTP. Also help to transport file to/from remote host.
Stars: ✭ 41 (-50%)
Mutual labels:  remote-execution
holo
Minimalistic configuration management
Stars: ✭ 88 (+7.32%)
Mutual labels:  configuration-management
configi.old
Bloat-free configuration management
Stars: ✭ 35 (-57.32%)
Mutual labels:  configuration-management
Pokedex
Pokedex is a robust Discord bot that mimics the iconic Pokedex from the Pokemon games and show. It's loaded with features to help players of all skill levels to learn and better enjoy Pokemon! The goal of Pokedex is to provide users with as much data about the Pokemon games as they desire conveniently and with minimal effort.
Stars: ✭ 18 (-78.05%)
Mutual labels:  configuration-management
polkadot-deployer
Tool for deploying polkadot networks
Stars: ✭ 99 (+20.73%)
Mutual labels:  devops-tools
opensvc
The OpenSVC node agent
Stars: ✭ 27 (-67.07%)
Mutual labels:  configuration-management
apollo.net
Apollo配置中心.Net客户端
Stars: ✭ 449 (+447.56%)
Mutual labels:  configuration-management
ctrip-apollo-client
This is a client library for Apollo(A reliable configuration management system) written in Node.js.
Stars: ✭ 49 (-40.24%)
Mutual labels:  configuration-management
zbx2git
Zabbix Configuration Versioning Manager
Stars: ✭ 23 (-71.95%)
Mutual labels:  configuration-management
dynamic-config
A dynamic config library for Node.js implemented in TypeScript
Stars: ✭ 29 (-64.63%)
Mutual labels:  configuration-management

Efs2

Don't you wish you could configure a server as easily as creating a Docker image? Meet Efs2, A dead simple configuration management tool that is powered by stupid shell scripts.

Efs2 is an idea to combine the stupid shell scripts philosophy of fss with the simplicity of a Dockerfile.

PkgGoDev Go Report Card Build Status Coverage Status

Getting Started

Let's take a look at how easy it is to use Efs2 to configure NGINX on Ubuntu.

Installation

Efs2 is simple to install, with the fastest method being to download one of our binary releases.

It is also possible to install Efs2 with Go (requires v1.14+).

$ go get -u github.com/madflojo/efs2

Once installed, we can start defining our steps to setup NGINX.

The Efs2file

An Efs2file powers Efs2's configuration; much like a Dockerfile, this file uses a simple set of instructions to configure our target servers.

# Install and Configure NGINX

# Run apt-get update
RUN apt-get update --fix-missing && apt-get -y upgrade

# Install nginx
RUN apt-get install nginx

# Deploy Config files
PUT example.com.conf /etc/nginx/sites-available/example.com.conf 0644

# Create a Symlink
RUN ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

# Restart NGINX
RUN systemctl restart nginx

The above Efs2file showcases how simple the Efs2 instructions are. Our NGINX server is configured with two simple instructions RUN and PUT.

The RUN instruction is simple; it executes whatever command you provide. The PUT instruction uploads files. That's it, that's all the instructions included with Efs2. Simple but effective.

Remote Execution

Efs2 uses SSH to execute the instructions specified within the Efs2file. Just run the Efs2 command, followed by the target hosts.

$ efs2 host1.example.com host2.example.com

Command-Line Options

Efs2 offers several additional options, such as parallel execution and various authentication methods.

  -v, --verbose   Enable verbose output
  -q, --quiet     Silence output
  -f, --file=     Specify an alternative Efs2File (default: ./Efs2file)
  -i, --key=      Specify an SSH Private key to use (default: ~/.ssh/id_rsa)
  -p, --parallel  Execute tasks across multiple hosts in parallel
  -d, --dryrun    Print tasks to be executed without actually executing any tasks
      --port=     Define an alternate SSH Port (default: 22)
  -u, --user=     Remote host username (default: current user)
      --passwd    Ask for a password to use for host authentication

Call to Action

Efs2 is a small project to fit the fine line between complex configuration management and simple shell scripts. We are always looking for users to share their stories and contribute to our examples repository.

For those interested in helping develop Efs2. The time, skills, and perspectives you contribute to this project are valued. Please reference our Issues Page for open ideas and our Contributing Guide for contribution details.

If you like Efs2, please tell others about it by sharing this project on the social media site of your choice.

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].