# Infrastructure Manager

The **Infrastructure Manager (IM)** is a tool that deploys complex and customized virtual infrastructures on IaaS Cloud deployments (such as AWS, OpenStack, etc.).

* It eases the access and the usability of IaaS clouds by automating the VMI (Virtual Machine Image) selection, deployment, configuration, software installation, monitoring and update of the virtual infrastructure.&#x20;
* It supports APIs from a large number of virtual platforms, making user applications cloud-agnostic.&#x20;
* In addition it integrates a contextualization system to enable the installation and configuration of all the user required applications providing the user with a fully functional infrastructure.

This version evolved in the [INDIGO-Datacloud project](https://www.indigo-datacloud.eu/) by adding support to TOSCA documents as input for the infrastructure creation.

**Summary**:

* Updates
  * [IM v1.5.5](https://indigo-dc.gitbooks.io/indigo-datacloud-releases/content/indigo2/second_update_of_indigo-2.html#im)
* [Release Notes v1.5.2](#id1)
  * [What's new](#id2)
  * [List of RfCs](#id3)
  * [Deployment Notes](#id4)
  * [Known Issues](#id5)
  * [List of Artifacts](#id7)
* [Documentation](#id6)
* [Support](#id8)

## Release Notes v1.5.2

### What's new

Hihglihts of this release:

* IM is now python 3 compatible
* Improve and enrichment of error messages and logging
* Improve OCCI connector
* Fix ssh, ansible and vm errors

Supported Platforms:

* CentOS 6
* CentOS 7
* Ubuntu 14.04
* Ubuntu 16.04

#### List of RfCs

* Error detecting Ansible process timeout -> <https://github.com/grycap/im/issues/273>
* Error in return value of function execute\_timeout in SSH class -> <https://github.com/grycap/im/issues/271>
* Add VMINFO\_JSON conf var to enable the GetVMInfo function return JSON RADL -> <https://github.com/grycap/im/issues/270>
* Improve OCCI cloud\_init data process -> <https://github.com/grycap/im/issues/269>
* Error getting VM info -> <https://github.com/grycap/im/issues/266>
* Improve error messages in case of internal connector errors -> <https://github.com/grycap/im/issues/242>
* Test IM with python 3 -> <https://github.com/grycap/im/issues/144>
* Enrich the logging entries + stack trace with the infra id -> <https://github.com/grycap/im/issues/250>

### Deployment Notes

`$ docker run -d -p 8899:8899 -p 8800:8800 --name im indigodatacloud/im:indigo_2`

* Other installation procedures are described in: <https://www.gitbook.com/book/indigo-dc/im/details>
* An Ansible playbokk is also available in [GitHub](https://raw.githubusercontent.com/indigo-dc/im/master/ansible_install.yaml) for an easier instalaltion and configuration

### Known Issues

* N/A

### List of Artifacts

Packages:

* [IM-1.5.2-1.el7.noarch.rpm](http://repo.indigo-datacloud.eu/repository/indigo/2/centos7/x86_64/base/IM-1.5.2-1.el7.noarch.rpm)
* [python-im\_1.5.2-1\_all.deb](http://repo.indigo-datacloud.eu/repository/indigo/2/ubuntu/dists/xenial/main/binary-amd64/python-im_1.5.2-1_all.deb)

Docker Container:

* [indigodatacloud/im:indigo\_2](https://hub.docker.com/r/indigodatacloud/im/)

## Documentation

* [Infrastructure Manager GitBook](https://www.gitbook.com/book/indigo-dc/im/details)
* To upgrade to the last version first you have to install the new version using yum or apt tool: `yum update IM`\</br> `apt install python-im`\</br>
* As there is a change in the DB format. Old 1.5.0 data must be updated. Use the script: db\_1\_5\_0\_to\_1\_5\_1.py to update the DB format (if you have installed 1.5.0 version) or db\_1\_4\_to\_1\_5.py (if you have installed 1.4.X version):
  * Install new IM 1.5.2 version.
  * In case that you were using a DATA\_FILE to store the IM data (in case of 1.4.X version), define the DATA\_DB in the im.cfg file.
  * Execute the script .
    * In case that you were using a DATA\_FILE you have to specify it as the first parameter of the script.
    * If you were using a DATA\_DB to store your data this parameter is not needed.
    * The data will be moved to the new format and old data will be renamed as table inf\_list\_XXXXXX.
* To update a container the user has to:
  * Stop the old container:\</br>

    `sudo docker stop im`\</br>
  * Remove the old container:\</br>

    `sudo docker rm im`\</br>
  * Pull the new image version:\</br>

    `sudo docker pull indigodatacloud/im`\</br>
  * Start the new version:\</br>

    `sudo docker run -d -p 8899:8899 -p 8800:8800 -e IM_DATA_DB=mysql://username:password@server/db_name --name im indigodatacloud/im`\</br>

## Support

* GitHub issues: <https://github.com/indigo-dc/im/issues>
