Inmanta Documentation — Inmanta 2017.4dev documentation

# Inmanta Documentation

Welcome to the Inmanta documentation!

Inmanta is an automation and orchestration tool to efficiently deploy and manage your software services, including all (inter)dependencies to other services and the underpinning infrastructure. It eliminates the complexity of managing large-scale, heterogeneous infrastructures and highly distributed systems.

The key characteristics of Inmanta are:

- Integrated: Inmanta integrates configuration management and orchestration into a single tool, taking infrastructure as code to a whole new level.
- Powerful configuration model: Infrastructure and application services are described using a high-level configuration model that allows the definition of (an unlimited amount of) your own entities and abstraction levels. It works from a single source, which can be tested, versioned, evolved and reused.
- Dependency management: Inmanta’s configuration model describes all the relations between and dependencies to other services, packages, underpinning platforms and infrastructure services. This enables efficient deployment as well as provides an holistic view on your applications, environments and infrastructure.
- End-to-end compliance: The architecture of your software service drives the configuration, guaranteeing consistency across the entire stack and throughout distributed systems at any time. This compliance with the architecture can be achieved thanks to the integrated management approach and the configuration model using dependencies.

Currently, the Inmanta project is mainly developed and maintained by Inmanta nv.

- Quickstart
  - Setting up the tutorial
  - Automatically deploying Drupal
    - Single machine deployment using the CLI
    - Multi-machine deployment using the CLI
    - Using the dashboard
  - Create your own modules
    - Module layout
    - Configuration model
    - The composition
    - Deploy the changes
  - Next steps
- Install Inmanta
  - Install software
    - With pip
    - From source
    - Fedora and CentOS 7
  - Configure server
    - Optional step 1: Setup SSL and authentication
    - Step 2: Setup mongodb
    - Step 3: Set the server address
    - Step 4: Configure ssh of the inmanta user
    - Step 5: Start the server
- Architecture
  - Embedded
  - Push to server
  - Autonomous server
  - Agent deployment
    - Server side agents
    - Local Agents
- Language Reference
  - Modules
  - Variables
  - Literals values
  - Primitive types
  - Conditions
  - Function calls / Plugins
  - Entities
  - Relations
  - Instantiation
  - Refinements
  - Indexes and queries
  - For loop
  - Transformations
    - String interpolation
    - Templates
  - Plug-ins
- Guides
  - Setup authentication
    - SSL
    - Authentication
    - External authentication providers
  - Create a configuration model
    - Create a new source project
    - Initial model
    - Deploy a file
  - Module Developers Guide
    - Module layout
    - Module metadata
    - Versioning
    - Extending Inmanta
- Module guides
  - Ansible module
  - OpenStack
    - Prerequisites
    - Creating machines
    - Getting the agent on the machine
    - Pushing config to the machine
    - Actual usage
  - Forms
    - Defining Forms
    - Using Forms
    - Using the CLI
    - Using the API
- Developer documentation
  - Documentation writing
    - Inmanta code documentation
    - Sphinx tooling
  - Platform Developers Guide
    - Dependencies
    - Versioning
    - Running tests
- Glossary
- Inmanta Reference
  - Command Reference
    - inmanta
    - inmanta-cli
  - Configuration Reference
    - agent_rest_transport
    - client_rest_transport
    - cmdline_rest_transport
    - compiler_rest_transport
    - config
    - dashboard
    - database
    - server
    - server_rest_transport
    - unknown_handler
  - Inmanta API reference
    - Plugins
    - Resources
    - Handlers
  - Inmanta modules
    - Module ansible
    - Module apache
    - Module apt
    - Module aws
    - Module bind
    - Module collectd
    - Module dns
    - Module docker
    - Module drupal
    - Module exec
    - Module graphite
    - Module ip
    - Module logging
    - Module mongodb
    - Module monitoring
    - Module mysql
    - Module net
    - Module openstack
    - Module openvswitch
    - Module param
    - Module php
    - Module platform
    - Module redhat
    - Module ssh
    - Module std
    - Module ubuntu
    - Module user
    - Module varnish
    - Module web
    - Module yum

## Additional resources

- Inmanta User Mailinglist
- Inmanta Developer Mailinglist
- Inmanta Twitter