Giter Site home page Giter Site logo

opsforge ANViL

The opsforge anvil (a renaming of the opsforge stack 2.0) is an all-in-one development solution, that aims to deliver a development platform that is:

  • using browser accessible web-apps (no terminal emulator or IDE needed / even on Windows)
  • built on docker-native and container-based services
  • structured and configured by docker-compose
  • relying on OSS-only components
  • swarm-compatible for scale-out needs (e.g larger dev environments)
  • has in-built logging and audit (for collaboration and record keeping)
  • highly customisable (modular)
  • easly reproducable and replacable
  • version controlled
  • platform and infrastructure agnostic
  • can run on localhost and AWS the same way
Project names and images Project Health Comments
opsforge/anvil Build health: Codeship Status for opsforgeio/opsforge Code health: Issue Count Ubuntu container with tools and shell
docker.elastic.co/logstash/logstash:6.0.1 docker.elastic.co/elasticsearch/elasticsearch:6.0.1 docker.elastic.co/kibana/kibana:6.0.1 N/A Logging and collector engine
opsforge/splunk-light N/A Logging and collector engine

Components:

Name Purpose Accessibility
(plugin) Cloud9 IDE Development interface Browser window
anvil ZSH (shell) through Butterfly, pre-built CLIs and git control Browser window or Docker shell
(plugin) Apache Guacamole Remote desktop, VNC, TTY, etc access (optional) Browser window
(plugin) portainer Docker engine access and container access Browser window or API
(plugin) ELK Audit and shell logging (optional) Browser window or API
(plugin) Splunk Light (C) Audit and shell logging (optional) Browser window or API

Deployment

Pre-deployment steps

It's recommended to create a new folder in the destination directory first. The name of the folder can be anything the OS supports.

If using ELK

  1. cd into the folder you created
  2. mkdir -p ./es_data
  3. chmod -R 777 ./es_data

This will resolve any issues with ownership when the ES container is starting up.

If using Splunk Light

  1. cd into the folder you created
  2. mkdir -p ./splunk-data && touch ./splunk-data/splunk-launch.conf

This will resolve launch issues with the Splunk Light container.

Deploying the stack

The recommended way to deploy anvil is through docker-compose. Make sure your machine has the latest version of docker engine and docker-compose installed. You can check from your command line using docker -v and docker-compose -v

Either clone this project repository to your machine using git or just download the docker-compose.yaml file from the project root to a folder on your machine, cd into that folder and type docker-compose -p anvil up -d

Removal

To delete the stack, simply cd into your project folder and type docker-compose -p anvil down. Make sure you remove content from any persisted data mounts manually.

Usage

hostname will be either localhost or if you deployed to another machine, the DNS record / IP for that.

Service Address
Splunk Light http://localhost:8000
anvil (core) http://localhost:8001
Cloud9 http://localhost:8002
Apache Guacamole http://localhost:8003/guacamole/
portainer http://localhost:9000
Kibana http://localhost:5601
Logstash (for sending logs and metrics in) http://localhost:5000

Customization

You are free to comment out / add in parts of the docker-compose to disable or remove services on startup. You can apply your changes with a simple docker-compose -p anvil up -d --remove-orphaned on an active deployment.

You can also make use of portainer on port 9000. After logging in and connecting in to the local docker engine, you can stop / start / create / remove containers on-demand through the web UI or its API.

WIP (to-be-done)

  • Guacamole doesn't play nice with private DNS servers (public records seem to be fine)
  • Desktop copy/paste doesn't seem to work in Guacamole and drive sharing is flaky
  • anvil container doesn't include a puppet cli yet
  • Logstash doesn't support multiline TCP intake since its previous version update. A line sent to the listener remains a single line.
  • Create a read-the-docs page for the project
  • YouTube demo video

opsforge's Projects

anvil icon anvil

An up to date OSS devops toolkit fit to run on anything, anywhere

cabot icon cabot

Self-hosted, easily-deployable monitoring and alerts service - like a lightweight PagerDuty

cf-labs icon cf-labs

Cloud Foundry lab using concourse, bosh-lite and OSS cloud foundry for a minimal deploy that's still production-like

concourse-tools icon concourse-tools

Base image to be used in concourse pipelines. Has the latest terraform, bosh and cf clis.

deskible icon deskible

Deskible the jQuery Window Manager for your browser

docker icon docker

Docker Official Image packaging for Docker

evala icon evala

Clock, Weather, Terminal ... евала :)

evala-docker icon evala-docker

ANViL compatible evala in Docker - used as part of ANViL

ifm icon ifm

Improved File Manager

k9c icon k9c

Cloud9+kubectl container

kops icon kops

kops / aws cli / kubectl all in one image

netbox icon netbox

IP address management (IPAM) and data center infrastructure management (DCIM) tool.

nginx-highsec icon nginx-highsec

High security NGINX container image for increased site protection

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.