Skip to content

GeMa Controller is a portable and scriptable workstation for modeling, reasoning, and communicating about computer technology topics.

License

Notifications You must be signed in to change notification settings

genesis-matrix/gema-ctl

Repository files navigation

Introduction to GeMa Controller

Objectives

  • Enable quick test-driven iteration cycles for provably-correct quick-deploy infrastructure.
  • Facilitate collaboration/coordination using practical and friendly tools and conventions.
  • Minimize the distance between a good idea and a deployed implementation of that idea.

Design Goals

  • Move Infrastructure and Operations tasks into greater coherence …
    • with Scientific Research Methods: reproducible research, independent verification, collegial collaboration, etc.
    • with Development Best Practices: separation of concerns, version control, DRY, re-usable components, clean interfaces, extensibility, etc.
    • with Biological System Patterns: emergent behavior from simple communications, individual dynamicism, herd resiliency, data-driven (as with DNA), etc.
  • Be Pythonic.
  • See more at GeMa Paradigm.

Assumptions

  • Anthropomorphic design is healthier and more sustainable.
  • Re-use is ROI.
  • Change is inevitable and valuable, so should be as fluid and fun as fresh design.

Questions & Answers

Who is this for?

One or more persons responsible for and/or contributing to a design/performance/behavior aspect of one or more servers.

What does it do (what problem does it solve)?

Enables a rigorous and creative approach to designing, deploying, and managing variably complex systems.

Why is it needed now?

GeMa is productive, clever, collaborative, and fun. Perhaps you have some use for such things?

Usage

(Getting Started) Stand up a Minimal Salt-Master

  • Notes:
    • Configures, (and creates if not already existent), a Salt Master that is “primed” with minimal but useful configuration.
    • During vagrant up, a vagrant-trigger checks for the existence of the requested Vagrant base image,
      • if the requested Vagrant base image isn’t found, and Packer build instructions are found, runs the Packer build for the Vagrant base image, registers the build artifact with Vagrant and continues with the already initiated vagrant up.
    • This is useful for quickly designing and testing states.
  • Create then SSH into instance
    # from the top directory in the gema-ctl project
    make vagrant-into-salt-master-d1
        

(Exploring and Designing) Stand up a GeMa Salt-Master

  • Notes:
    • A GeMa master is a usable, robust, opinionated, fully-configuration managed, and production focused Salt master design.
    • To assign the GeMa salt-master policy, this machine was added to a “feature-pack” label for describing the desired salt-master service configuration.
    • To apply the policy, we “highstate” the machine, which causes the machine to request and apply it’s assigned policy.
    • GeMa Master in gema-ctl provides a managed and configurable workspace for policy design - by using that same single source of policy.
    • This is useful for testing complicated states, event-based interactions, multi-system orchestrations, and service integrations.
  • Create and enter a “primed” salt-master, by typing make vagrant-into-salt-master-d1 at the gema-ctl root working-dir.
  • Convert the salt-master from the “primed” config to the “GeMa” config:
    sudo salt-call state.highstate # from CLI w/i a "primed" Salt Master
        

References

titleurldesc
Using SaltStack to automate Vagrant provisioning BY AYMEN EL AMRIhttp:https://eon01.com/blog/using-saltstack-to-automate-vagrant-provisioning/Inspiration and Prior Art
Herding Cattle with SaltStack and Targeting via CMDB by by Onno Ebbingehttps://www.youtube.com/watch?v=F3K706JJ2EIInspiration and Prior Art
Genesis Devicehttp:https://memory-alpha.wikia.com/wiki/Genesis_DeviceA fictional Device directed by an internal matrix.

About

GeMa Controller is a portable and scriptable workstation for modeling, reasoning, and communicating about computer technology topics.

Resources

License

Stars

Watchers

Forks

Packages

No packages published