Metadata-Version: 2.1
Name: vmm-manager
Version: 0.3.0
Summary: Management of resources on System Center Virtual Machine Manager (SCVMM) in a declarative way.
Home-page: https://github.com/MP-ES/vmm_manager
License: MIT
Keywords: IaC,scvmm,vmm_manager
Author: Estevão Costa
Author-email: ecosta@mpes.mp.br
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Systems Administration
Requires-Dist: configargparse (>=1,<2)
Requires-Dist: jinja2 (>=3,<4)
Requires-Dist: paramiko (>=2,<3)
Requires-Dist: pytz (>=2022.4)
Requires-Dist: ruamel.yaml (>=0.17,<0.18)
Requires-Dist: tqdm (>=4,<5)
Requires-Dist: yamale (>=4,<5)
Requires-Dist: yamlable (>=1,<2)
Project-URL: Documentation, https://github.com/MP-ES/vmm_manager
Project-URL: Repository, https://github.com/MP-ES/vmm_manager
Description-Content-Type: text/markdown

# vmm-manager

Script python que gerencia recursos no System Center Virtual Machine Manager (SCVMM), de forma declarativa, com base em um arquivo de configuração YAML.

[![License](https://img.shields.io/github/license/MP-ES/vmm_manager.svg)](LICENSE)
[![Tests](https://github.com/MP-ES/vmm_manager/workflows/Tests/badge.svg)](https://github.com/MP-ES/vmm_manager/actions?query=workflow%3ATests)
[![Release](https://github.com/MP-ES/vmm_manager/workflows/Release/badge.svg)](https://github.com/MP-ES/vmm_manager/actions?query=workflow%3ARelease)
[![Python](https://img.shields.io/pypi/pyversions/vmm-manager.svg)](https://pypi.python.org/pypi/vmm-manager)
[![PyPI](http://img.shields.io/pypi/v/vmm-manager.svg)](https://pypi.python.org/pypi/vmm-manager)

## Pré-requisitos

É necessário ter uma máquina Windows, que servirá como ponto de acesso ao SCVMM, com as seguintes ferramentas:

- OpenSSH
- Módulo PowerShell do SCVMM (**virtualmachinemanager**), instalado junto com o Console do Virtual Machine Manager (VMM). Você também pode obtê-lo em <https://github.com/MP-ES/VirtualMachineManager-PowerShellModule>

## Instalação

```shell
pip install -U vmm-manager
```

## Uso

Para consultar as funções e os parâmetros disponíveis, utilize o comando:

```shell
vmm_manager -h
```

### Exemplo de arquivo de inventário

[inventario_exemplo.yaml](inventario_exemplo.yaml)

## Desenvolvimento

### Instalação e configuração do python-poetry

Execute os comandos a seguir:

```shell
# instalar o poetry
curl -sSL https://install.python-poetry.org | python3 -

# Configurar autocomplete
# Bash
poetry completions bash >> ~/.bash_completion
```

### Variáveis de ambiente

Defina as variáveis de ambiente de acordo com as instruções do arquivo **.env.default**. Você pode criar um arquivo **.env** e executar o comando `export $(cat .env | xargs)` para defini-las antes da execução do script.

### Como executar

```shell
# Carregando envs (opcional)
export $(cat .env | xargs)

# Instalando dependências
poetry install --no-root

# Executando script
poetry run python -m vmm_manager -h
```

### Comandos úteis para DEV

```shell
# Habilitar shell
poetry shell

# Incluir uma dependência
poetry add <pacote> [--dev]

# Executar lint
pylint --load-plugins pylint_quotes tests/* vmm_manager/*

# Executar testes
python -m pytest -vv

# listar virtualenvs
poetry env list

# Remover um virtualenv
poetry env remove <nome>
```

## Referências

- [Virtual Machine Manager](https://docs.microsoft.com/en-us/powershell/module/virtualmachinemanager/?view=systemcenter-ps-2019)
- [Poetry](https://python-poetry.org/)

