Posted on
Exportar Voip para AWS EC2 - .vmdk ou .ova
1- Vamos usar como exemplo neste tutorial uma .iso FreePBX para exportação.
- Baixar .iso do FreePBX no endereço:https://downloads.freepbxdistro.org/ISO/
- Neste tutorial, usei essa .iso:https://downloads.freepbxdistro.org/ISO/SNG7-FPBX-64bit-2011-5.iso
2- Usaremos o Virtual Box para instalar a .iso em .vmdk e converter para .ova
![Coloque o nome | clique em NEXT]
![Neste caso, vou usar 4GB de ram para instalação | clique em NEXT]
![Escolha criar novo disco | clique em CREATE]
![Escolha VMDK | clique em NEXT]
![Deixe em "Dynamically allocated | clique em NEXT]
![Aloque cerca de 20GB para a máquina virtual | clique em CREATE]
![Clique em SETTINGS]
![Escolha uma quantidade razoável de cores para configurarmos a máquina virtual]
![Habilitar uma placa de rede NAT]
![Clique em Storage > Empty > Icone de CD > Choose a disk file]
![Escolha a .iso a ser instalada | clique em OPEN e OK na janela anterior]
![Clique em START]
![Caso pergunte qual midia para iniciar a máquina virtual, selecione a .iso a ser instalada | clique em START]
![Neste tutorial usaremos a versão 16 | aperte ENTER]
![Escolha a opção "Graphical Installation - Output to VGA" | aperte ENTER]
![Escolha a opção "FreePBX Standard | aperte ENTER]
![............ Aguarde a instalação ............]
![Clique em "ROOT PASSWORD" para configurar uma senha para o ROOT]
![Defina uma senha e clique em DONE]
![Com a senha de root configurada, aguarde até o final da instalação]
![Clique em REBOOT]
![Desligue a maquina virtual | clique em OK]
![Com a máquina virtual em STOP | clique em SETTINGS]
![Clique em Storage > clique na ISO atachada > Clique no ícone de CD > Remove Disk from Virtual Drive > Inicie o VOIP]
![Ao iniciar, logue como usuario "root" e a senha escolhida na instalação]
3- Agora que a máquina virtual está instalada, vamos instalar o AWS SSM Agent para acesso ao terminal via AWS Console
- Neste caso, instalaremos o SSM para região de Virgínia (us-east-1) na AWS, seguindo a documentação da AWS.
https://docs.aws.amazon.com/systems-manager/latest/userguide/agent-install-rhel.html
sudoyuminstall-y https://s3.us-east-1.amazonaws.com/amazon-ssm-us-east-1/latest/linux_amd64/amazon-ssm-agent.rpmsudosystemctlenableamazon-ssm-agentsudosystemctl start amazon-ssm-agentsudosystemctl status amazon-ssm-agent
4- Agora podemos desligar a máquina virtual.
Execute o comando:
shutdown now
5- Vamos exportar a maquina virtual para .ova
![File > Export Appliance]
![Escolha FreePBX | clique em NEXT]
![Escolha o destino | clique em NEXT]
![Clique em EXPORT]
6- Criar bucket privado e fazer upload do
arquivo.ova
para o AWS S3
- Faça o upload do arquivo .ova para dentro do bucket criado
7- Vamos criar uma politica com o nome
trust-policy.json
no computador local
Execute o comando abaixo:
cat>"trust-policy.json"<<"EOF"{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"vmie.amazonaws.com"},"Action":"sts:AssumeRole","Condition":{"StringEquals":{"sts:Externalid":"vmimport"}}}]}EOF
![Output do comando acima]
8- Vamos criar uma Role com o nome
vmimport
utilizando o arquivotrust-policy.json
- Para isso necessitamos exportar uma credencial programática com permissão “AdministratorAccess”* em seu terminal.
![Comando para exportar credencial no terminal, necessário instalar o AWS CLIhttps://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html]
Execute o comando abaixo:
aws iam create-role--role-name vmimport--assume-role-policy-document"file://trust-policy.json"
9-Variáveis que iremos alterar nos arquivos a seguir
nome_do_seu_bucket="aldeiacloud"#Apontarodiretorio/arquivo.ovaS3Key="diretorio-local/FreePBX.ova"
- Esta política será anexada àRole
vmimport
criada na etapa anterior - Vamos alterar o
bucket_name
para o nome doseu bucket no AWS S3
role-policy.json
echo'{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["s3:GetBucketLocation","s3:GetObject","s3:ListBucket"],"Resource":["arn:aws:s3:::'nome_do_seu_bucket'","arn:aws:s3:::'nome_do_seu_bucket'/*"]},{"Effect":"Allow","Action":["ec2:ModifySnapshotAttribute","ec2:CopySnapshot","ec2:RegisterImage","ec2:Describe*"],"Resource":"*"}]}'|sudoteerole-policy.json
Execute o comando:
aws iam put-role-policy--role-name vmimport\--policy-name vmimport\--policy-document"file://role-policy.json"
10- Iniciar tarefa de exportação da .ova
- Em nosso caso, iremos executar o seguinte comando para criarmos o arquivo
Execute o comando:
echo'[ { "Description": "FreePBX", "Format": "ova", "UserBucket": { "S3Bucket": "'nome_do_seu_bucket'", "S3Key": "'diretorio-local/FreePBX.ova'" }}]'> containers.json
- Iniciar exportação
Execute o comando:
aws ec2 import-image--description"FreePBX"--disk-containers"file://containers.json"
CHECAGEM DA TASK
Verifique o status dos trabalhos de importação de VM
aws ec2 describe-import-image-tasks--import-task-ids"import-ami-xxxxxxxxxxxxxxxxx"
[Status 3]
![Status 4 | COMPLETED]
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse