All Projects → milosgajdos → servpeek

milosgajdos / servpeek

Licence: other
Introspective peek into your server guts

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to servpeek

StackJanitor
StackJanitor is a serverless, event-driven stack cleanup tool.
Stars: ✭ 37 (+23.33%)
Mutual labels:  infrastructure
infra
Infrastructure configuration for pyca projects (mostly dockerfiles)
Stars: ✭ 13 (-56.67%)
Mutual labels:  infrastructure
headless-wordpress
Headless Wordpress - AWS - Easy Setup
Stars: ✭ 42 (+40%)
Mutual labels:  infrastructure
partyfactsdata
Party Facts data import
Stars: ✭ 31 (+3.33%)
Mutual labels:  infrastructure
govuk-terraform-provisioning
**DEPRECATED** Terraform configuration and utilities to provision parts of the GOV.UK AWS Infrastructure
Stars: ✭ 17 (-43.33%)
Mutual labels:  infrastructure
alchemy
Experiments logging & visualization
Stars: ✭ 49 (+63.33%)
Mutual labels:  infrastructure
argo
The administrative discovery interface for Stanford's Digital Object Registry
Stars: ✭ 19 (-36.67%)
Mutual labels:  infrastructure
funsies
funsies is a lightweight workflow engine 🔧
Stars: ✭ 37 (+23.33%)
Mutual labels:  infrastructure
onix
A reactive configuration manager designed to support Infrastructure as a Code provisioning, and bi-directional configuration management providing a single source of truth across multi-cloud environments.
Stars: ✭ 89 (+196.67%)
Mutual labels:  infrastructure
ansible-aws-infra-services
Manage your AWS infrastructure and ECS tasks with two separate ansible playbooks
Stars: ✭ 23 (-23.33%)
Mutual labels:  infrastructure
testing.cloudposse.co
Example Terraform Reference Architecture that implements a Geodesic Module for an Automated Testing Organization in AWS
Stars: ✭ 22 (-26.67%)
Mutual labels:  infrastructure
koki
Application Lifecycle Management Software
Stars: ✭ 30 (+0%)
Mutual labels:  infrastructure
terraform-aws-concourse
Terraform Module for a distributed concourse cluster on AWS
Stars: ✭ 12 (-60%)
Mutual labels:  infrastructure
terraform-aws-ecs-cluster
Terraform module for building an ECS cluster in AWS
Stars: ✭ 42 (+40%)
Mutual labels:  infrastructure
kube-applier
kube-applier enables automated deployment and declarative configuration for your Kubernetes cluster.
Stars: ✭ 27 (-10%)
Mutual labels:  infrastructure
vpc-tutorials
Companion scripts to VPC tutorials
Stars: ✭ 14 (-53.33%)
Mutual labels:  infrastructure
lambda.service.skeleton
A skeleton for deploying python microservices on AWS Lambda.
Stars: ✭ 73 (+143.33%)
Mutual labels:  infrastructure
infra
Infrastructure management for Google Cloud Platform
Stars: ✭ 14 (-53.33%)
Mutual labels:  infrastructure
Spatio-Temporal-papers
This project is a collection of recent research in areas such as new infrastructure and urban computing, including white papers, academic papers, AI lab and dataset etc.
Stars: ✭ 180 (+500%)
Mutual labels:  infrastructure
devops-book
运维开发
Stars: ✭ 29 (-3.33%)
Mutual labels:  infrastructure

servpeek

GoDoc Travis CI

Introspective peek into your infrastructure guts

Motivation

Currently the most widely used tools for testing your infrastructure are serverspec and infrataster.

However these tools being written in ruby carry a decent amount of runtime an gem dependencies. Writing a simple tool in Go programming language would help to address runtime dependency "issue" and would further simplify the ditribution and speed of deployment of infrastructure.

Current state

Current project design might be a bit of an overkill mostly because of my Go incompetence or because the projects tries to create abstractions on top of already existing abstractions (package managers, commands etc.). Turns out modelling this is not that easy :-/

Project currently provides support for various package managers: apt, yum, apk, gem and pip as well as file and service inspections. More resources will be added later as the project moves on [if].

Usage

The project does not offer a single program to run as it stands right now. Instead a simple API is provided that allows you to build your own go binaries that can then be used to test your infrastrucure. Statically linked binary alleviates a necessity to have any language runtime available on the tested infrastructure servers. Obviously, you have an option to create your own _test.go files that can be run using go test, but like already said you will need to have the go tool chain available on the tested server. The choice is really up to you, but my recommendation is to build and shipt the binaries.

Example

Get the package:

$ go get github.com/milosgajdos/servpeek

Write a go program that does some testing:

package main

import (
	"log"

	"github.com/milosgajdos/servpeek/file"
	"github.com/milosgajdos/servpeek/pkg"
)

func main() {
	// Test if a gem package is installed
	gemPkg, err := pkg.NewPackage("gem", "bundler", "1.10.6")
	if err != nil {
		log.Fatal(err)
	}

	if err := pkg.IsInstalled(gemPkg); err != nil {
		log.Fatal(err)
	}

	// Test if /etc/hosts is a regular file
	f := file.NewFile("/etc/hosts")
	if err := file.IsRegular(f); err != nil {
		log.Fatal(err)
	}
}

You can find a more elaborate example program in the examples directory.

TODO

  • A LOT more resources
  • Better logging and error statements
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].