Metadata-Version: 2.1
Name: ign8
Version: 4.12.15
Summary: Ignite it all.
Home-page: https://ign8.openknowit.com
License: MIT
Author: Jakob Holst
Author-email: jakob.holst@knowit.dk
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: CacheControl (>=0.14.0,<0.15.0)
Requires-Dist: Django (>=5.0.6,<6.0.0)
Requires-Dist: Pygments (>=2.18.0,<3.0.0)
Requires-Dist: SecretStorage (>=3.3.3,<4.0.0)
Requires-Dist: asgiref (>=3.8.1,<4.0.0)
Requires-Dist: build (>=1.2.1,<2.0.0)
Requires-Dist: certifi (>=2024.7.4,<2025.0.0)
Requires-Dist: cffi (>=1.16.0,<2.0.0)
Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
Requires-Dist: cleo (>=2.1.0,<3.0.0)
Requires-Dist: crashtest (>=0.4.1,<0.5.0)
Requires-Dist: cryptography (>=42.0.8,<43.0.0)
Requires-Dist: distlib (>=0.3.8,<0.4.0)
Requires-Dist: docutils (>=0.21.2,<0.22.0)
Requires-Dist: dulwich (>=0.21.7,<0.22.0)
Requires-Dist: fastjsonschema (>=2.20.0,<3.0.0)
Requires-Dist: filelock (>=3.15.4,<4.0.0)
Requires-Dist: idna (>=3.7,<4.0)
Requires-Dist: importlib_metadata (>=8.0.0,<9.0.0)
Requires-Dist: installer (>=0.7.0,<0.8.0)
Requires-Dist: jeepney (>=0.8.0,<0.9.0)
Requires-Dist: keyring (>=24.3.1,<25.0.0)
Requires-Dist: markdown-it-py (>=3.0.0,<4.0.0)
Requires-Dist: mdurl (>=0.1.2,<0.2.0)
Requires-Dist: more-itertools (>=10.3.0,<11.0.0)
Requires-Dist: msgpack (>=1.0.8,<2.0.0)
Requires-Dist: nh3 (>=0.2.17,<0.3.0)
Requires-Dist: packaging (>=24.1,<25.0)
Requires-Dist: pexpect (>=4.9.0,<5.0.0)
Requires-Dist: pkginfo (>=1.10.0,<2.0.0)
Requires-Dist: platformdirs (>=4.2.2,<5.0.0)
Requires-Dist: poetry (>=1.8.3,<2.0.0)
Requires-Dist: poetry-core (>=1.9.0,<2.0.0)
Requires-Dist: poetry-plugin-export (>=1.8.0,<2.0.0)
Requires-Dist: ptyprocess (>=0.7.0,<0.8.0)
Requires-Dist: pycparser (>=2.22,<3.0)
Requires-Dist: pyproject_hooks (>=1.1.0,<2.0.0)
Requires-Dist: rapidfuzz (>=3.9.4,<4.0.0)
Requires-Dist: readme_renderer (>=43.0,<44.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: requests-toolbelt (>=1.0.0,<2.0.0)
Requires-Dist: rfc3986 (>=2.0.0,<3.0.0)
Requires-Dist: rich (>=13.7.1,<14.0.0)
Requires-Dist: shellingham (>=1.5.4,<2.0.0)
Requires-Dist: sqlparse (>=0.5.0,<0.6.0)
Requires-Dist: tomlkit (>=0.12.5,<0.13.0)
Requires-Dist: trove-classifiers (>=2024.7.2,<2025.0.0)
Requires-Dist: twine (>=5.1.1,<6.0.0)
Requires-Dist: urllib3 (>=2.2.2,<3.0.0)
Requires-Dist: virtualenv (>=20.26.3,<21.0.0)
Requires-Dist: zipp (>=3.19.2,<4.0.0)
Project-URL: Repository, https://github.com/miracle-as/openknowit_ign8.git
Description-Content-Type: text/markdown

# Keep ign8 and automate




### Install and update ign8

pip install --upgrade ign8


### Basic configuration

ign8 init

creates a basic ign8 configuration

/etc/ign8/ign8.json and /etc/ign8/secrets.json

```json
{
  "organization": [
    {
      "name": "ign8",
      "meta":
        {
          "description": "Keep ign8 and automate",
          "max_hosts": 100,
          "default_environment": "Ansible Engine 2.9 execution environment",
          "secrets": "files"
        },
      "projects": [
        {
          "name": "main",
          "description": "Keep ign8 and automate",
          "scm_type": "git",
          "scm_url": "git@github.com:JakobHolstDK/openknowit_ansibleautomation_main.git",
          "scm_branch": "main",
          "credential": "github",
          "master": "True"
        }
      ],
      "inventories": [
        {
          "name": "000_masterinventory",
          "description": "Inventorycontaining all servers under automation control",
	  "variables": {
		  "serviceaccount": {
	            "name": "knowit",
		    "gecos": "Ansible automation manager"
		  }
	  },
          "type": "static"
        },
        {
          "name": "001_netboxinventory",
          "description": "Inventory containing all servers in netbox",
	  "variables": {
		  "serviceaccount": {
	            "name": "knowit",
		    "gecos": "Ansible automation manager"
		  }
	  },
          "type": "netbox"
	}
      ],
      "hosts": [
        {
          "name": "prodign8001.openknowit.com", "description": "Server cabable for running selfmaintainance", "inventories": ["000_masterinventory"]
        }
      ],
      "templates": [
        {
          "name": "000_ansibleautomationmanager_checkup",
          "description": "Master job for self healing ansible automation as code",
          "job_type": "run",
          "inventory": "000_masterinventory",
          "project": "main",
          "EE": "Automation Hub Default execution environment",
          "credentials": "ign8server",
          "playbook": "checkup.yml"
        },
        {
          "name": "000_ansibleautomationmanager_update",
          "description": "Maintain ansible manager and prereqs",
          "job_type": "run",
          "inventory": "000_masterinventory",
          "project": "main",
          "EE": "Automation Hub Default execution environment",
          "credentials": "ign8server",
          "playbook": "ansiblemanager.yml"
        }
      ],
      "schedules": [
        {
          "name": "000_jobschedule_ansibleautomationmanager_checkup",
          "type": "job",
          "template": "000_ansibleautomationmanager_checkup",
          "description": "Master job for ensuring connectivity",
          "local_time_zone": "CET",
          "run_every_minute": "5",
          "start": "now",
          "end": "never"
        },
        {
          "name": "000_jobschedule_ansibleautomationmanager_update",
          "type": "job",
          "template": "000_ansibleautomationmanager_update",
          "description": "Master job updating automation manager",
          "local_time_zone": "CET",
          "run_every_minute": "5",
          "start": "now",
          "end": "never"
        },
        {
          "name": "000_projectschedule_ansibleautomationmanager",
          "type": "project",
          "project": "main",
          "description": "Master job for syncing project main",
          "local_time_zone": "CET",
          "run_every_minute": "10",
          "start": "now",
          "end": "never"
        }
      ],
      "users":
        {
          "user_vault_path": "project/openknowit/users",
          "description": "AD integration is mandatory"
        },
      "labels":
      [
        {
          "name": "static"
        },
        {
          "name": "production"
        },
        {
           "name": "test"
        }
      ]
    }
  ]
}

```
and the secret.jsob
```json
{
  "ign8": {
    "vault": 
    [
     {
      "name": "myvault",
      "description": "Credentials to access a hashicorp vault",
      "vault_id": "https://vault.example.com",
      "vault_token": "/etc/ign8/vault.token"
    }
    ],
    #  Here we have a simple server credential built using a file located on the ign8 server
    "ssh": [
     {
      "name": "ign8server",
      "username": "ign8",
      "password": "/etc/ign8/ign8server.password",
      "description": "Credentials to login to ign8 server and setup ign8 service",
      "ssh_private_key": "/opt/ign8/ign8server_rsa",
      "privilege_escalation_method": "sudo",
      "privilege_escalation_username": "root",
      "privilege_escalation_password": "/etc/ign8/ign8server.password"
    },
    {
      "name": "productionserver",
      "username": "root",
      "password": "/etc/ign8/productionserver.password",
      "description": "Credentials to login to productionservers",
      "ssh_private_key": "/opt/ign8/prodservers_rsa",
      "privilege_escalation_method": "sudo",
      "privilege_escalation_username": "root",
      "privilege_escalation_password": "xxx"
    }
    ],
  "scm":[
     {
      "name": "github",
      "username": "Githubuser",
      "password": "",
      "description": "Credential to connect to git",
      "type": "Source Control",
      "ssh_private_key": "/opt/ign8/github",
      "kind": "scm"
    }
   ]
  }
}



```



![Python Logo](https://www.python.org/static/community_logos/python-logo.png "Sample inline image")

This is the README file for IGN8
you need this to access your ansible server

export TOWER_PASSWORD="<ADMIN PAASSWORD>"
export TOWER_HOST="https://<ANSIBLE HOST>"
export TOWER_USERNAME="<ADMIN USER>"




{
  "ign8": {
    "vault": {
      "vault_addr": "https://demo.vault.com",
      "vault_token": "xcvcvbdsfgsdsdfsdfsdf"
    },
    "ssh": {
      "name": "ign8server",
      "username": "knowit",
      "password": "xxx",
      "descriptions": "Credentials to login to ign8 server and setup ign8 service",
      "ssh_private_key": "/opt/ign8/id_rsa",
      "privilege_escalation_method": "xxx"
    }
  },
  "scm": {}
}


