DEV Community

Railander Marques
Railander Marques

Posted on

Exportar Voip para AWS EC2 - .vmdk ou .ova

1- Vamos usar como exemplo neste tutorial uma .iso FreePBX para exportação.

2- Usaremos o Virtual Box para instalar a .iso em .vmdk e converter para .ova

Image description

![Coloque o nome | clique em NEXT]

Image description

![Neste caso, vou usar 4GB de ram para instalação | clique em NEXT]

Image description

![Escolha criar novo disco | clique em CREATE]

Image description

![Escolha VMDK | clique em NEXT]

Image description

![Deixe em "Dynamically allocated | clique em NEXT]

Image description

![Aloque cerca de 20GB para a máquina virtual | clique em CREATE]

Image description

![Clique em SETTINGS]

Image description

![Escolha uma quantidade razoável de cores para configurarmos a máquina virtual]

Image description

![Habilitar uma placa de rede NAT]

Image description

![Clique em Storage > Empty > Icone de CD > Choose a disk file]

Image description

![Escolha a .iso a ser instalada | clique em OPEN e OK na janela anterior]

Image description

![Clique em START]

Image description

![Caso pergunte qual midia para iniciar a máquina virtual, selecione a .iso a ser instalada | clique em START]

Image description

![Neste tutorial usaremos a versão 16 | aperte ENTER]

Image description

![Escolha a opção "Graphical Installation - Output to VGA" | aperte ENTER]

Image description

![Escolha a opção "FreePBX Standard | aperte ENTER]

Image description

![............ Aguarde a instalação ............]

Image description

![Clique em "ROOT PASSWORD" para configurar uma senha para o ROOT]

Image description

![Defina uma senha e clique em DONE]

Image description

![Com a senha de root configurada, aguarde até o final da instalação]

Image description

![Clique em REBOOT]

Image description

![Desligue a maquina virtual | clique em OK]

Image description

![Com a máquina virtual em STOP | clique em SETTINGS]

Image description

![Clique em Storage > clique na ISO atachada > Clique no ícone de CD > Remove Disk from Virtual Drive > Inicie o VOIP]

Image description

![Ao iniciar, logue como usuario "root" e a senha escolhida na instalação]

Image description

Image description

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

sudo yum install -y https://s3.us-east-1.amazonaws.com/amazon-ssm-us-east-1/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
sudo systemctl status amazon-ssm-agent
Enter fullscreen mode Exit fullscreen mode

4- Agora podemos desligar a máquina virtual.

Execute o comando:

shutdown now
Enter fullscreen mode Exit fullscreen mode

5- Vamos exportar a maquina virtual para .ova

![File > Export Appliance]

Image description

![Escolha FreePBX | clique em NEXT]

Image description

![Escolha o destino | clique em NEXT]

Image description

![Clique em EXPORT]

Image description

6- Criar bucket privado e fazer upload do arquivo.ovapara 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.jsonno 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
Enter fullscreen mode Exit fullscreen mode

![Output do comando acima]

Image description

8- Vamos criar uma Role com o nome vmimport utilizando o arquivo trust-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 CLI https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html]

Image description

Execute o comando abaixo:

aws iam create-role --role-name vmimport --assume-role-policy-document "file://trust-policy.json"
Enter fullscreen mode Exit fullscreen mode

9- Variáveis que iremos alterar nos arquivos a seguir

nome_do_seu_bucket="aldeiacloud"
# Apontar o diretorio/arquivo.ova
S3Key="diretorio-local/FreePBX.ova"
Enter fullscreen mode Exit fullscreen mode
  • Esta política será anexada à Role vmimport criada na etapa anterior
  • Vamos alterar o bucket_name para o nome do seu 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":"*"
      }
   ]
}
' | sudo tee role-policy.json
Enter fullscreen mode Exit fullscreen mode

Execute o comando:

aws iam put-role-policy --role-name vmimport \
                        --policy-name vmimport \
                        --policy-document "file://role-policy.json"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
  • Iniciar exportação

Execute o comando:

aws ec2 import-image --description "FreePBX" --disk-containers "file://containers.json"
Enter fullscreen mode Exit fullscreen mode

Image description


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"
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

[Status 3]

Image description

![Status 4 | COMPLETED]

Image description

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more