Automação do Cloud volumes via Terraform
Essa solução documenta as implantações automatizadas do Cloud volumes na AWS (nó único do CVO, CVO HA e FSX ONTAP) e no Azure (nó único do CVO, CVO HA e ANF) usando módulos do Terraform. O código pode ser encontrado em https://github.com/NetApp/na_cloud_volumes_automation
Pré-requisitos
-
Terraform > 0,13
-
Conta do Cloud Manager
-
Conta de provedor de nuvem – AWS, Azure
-
Máquina host (qualquer sistema operacional suportado pelo Terraform)
Documentação do fornecedor
A documentação do fornecedor Terraform para Cloud Manager está disponível em:"https://registry.terraform.io/providers/NetApp/netapp-cloudmanager/latest/docs"
Controlar a versão do fornecedor
Observe que você também pode controlar a versão do provedor. Isso é controlado por um bloco required_providers na configuração do Terraform.
A sintaxe é a seguinte:
Leia mais sobre controle de versão do provedor.
Executando módulos específicos
AWS
Esta seção contém vários arquivos de configuração do Terraform para implantar/configurar o NetApp CVO (Cloud Volumes ONTAP) de nó único na AWS (Amazon Web Services).
Documentação do Terraform: https://registry.terraform.io/providers/NetApp/netapp-cloudmanager/latest/docs
Para executar o modelo:
-
Clone o repositório.
-
Navegue até a pasta desejada
-
Configure as credenciais da AWS a partir da CLI.
-
ID da chave de acesso da AWS [None]: Accesskey
-
Chave de acesso secreta da AWS [None]: secretkey
-
Nome da região padrão [nenhum]: US-West-2
-
Formato de saída padrão [None]: json
-
-
Atualize os valores da variável em
vars/aws_cvo_single_node_deployment.tfvar
Você pode optar por implantar o conetor definindo o valor da variável "aws_Connector_deploy_bool" como true/false. -
Inicialize o repositório do Terraform para instalar todos os pré-requisitos e se preparar para implantação.
-
Verifique os arquivos do Terraform usando o comando Terraform Validate.
-
Faça uma execução seca da configuração para obter uma prévia de todas as alterações esperadas pela implantação.
-
Execute a implantação
Para excluir a implantação
Connector
Variáveis Terraform para instância do NetApp AWS Connector para implantação do CVO.
Nome | Tipo | Descrição |
---|---|---|
aws_connector_deploy_bool |
Bool |
(Necessário) Verifique se há ativação do conetor. |
aws_connector_name |
Cadeia de carateres |
(Obrigatório) o nome do conetor do Cloud Manager. |
aws_connector_region |
Cadeia de carateres |
(Obrigatório) a região onde o conetor do Cloud Manager será criado. |
aws_connector_key_name |
Cadeia de carateres |
(Obrigatório) o nome do par de chaves a utilizar para a instância do conetor. |
aws_connector_company |
Cadeia de carateres |
(Obrigatório) o nome da empresa do utilizador. |
aws_connector_instance_type |
Cadeia de carateres |
(Obrigatório) o tipo de instância (por exemplo, T3.xlarge). Pelo menos 4 CPU e 16 GB de memória são necessários. |
aws_connector_subnet_id |
Cadeia de carateres |
(Obrigatório) o ID da sub-rede para a instância. |
aws_connector_security_group_id |
Cadeia de carateres |
(Obrigatório) o ID do grupo de segurança para a instância, vários grupos de segurança podem ser fornecidos separados por ','. |
aws_connector_iam_instance_profile_name |
Cadeia de carateres |
(Obrigatório) o nome do perfil de instância para o conetor. |
aws_connector_account_id |
Cadeia de carateres |
(Opcional) o ID da conta do NetApp ao qual o conetor será associado. Se não for fornecido, o Cloud Manager usará a primeira conta. Se nenhuma conta existir, o Cloud Manager criará uma nova conta. Você pode encontrar o ID da conta na guia conta do Cloud Manager em https://cloudmanager.netapp.com. |
aws_connector_public_ip_bool |
Bool |
(Opcional) indica se deve associar um endereço IP público à instância. Se não for fornecida, a associação será feita com base na configuração da sub-rede. |
Single Node Instance
Variáveis Terraform para instância única do NetApp CVO.
Nome | Tipo | Descrição |
---|---|---|
cvo_name |
Cadeia de carateres |
(Obrigatório) o nome do ambiente de trabalho Cloud Volumes ONTAP. |
cvo_region |
Cadeia de carateres |
(Obrigatório) a região onde será criado o ambiente de trabalho. |
cvo_subnet_id |
Cadeia de carateres |
(Obrigatório) o id de sub-rede onde o ambiente de trabalho será criado. |
cvo_vpc_id |
Cadeia de carateres |
(Opcional) o ID da VPC onde o ambiente de trabalho será criado. Se esse argumento não for fornecido, a VPC será calculada usando o ID de sub-rede fornecido. |
cvo_svm_password |
Cadeia de carateres |
(Obrigatório) a senha de administrador do Cloud Volumes ONTAP. |
cvo_writing_speed_state |
Cadeia de carateres |
(Opcional) a definição de velocidade de escrita para Cloud Volumes ONTAP: ['NORMAL','ALTA']. A predefinição é "NORMAL". |
Azure
Esta seção contém vários arquivos de configuração do Terraform para implantar/configurar o volume do ANF (Azure NetApp Files) no Azure.
Documentação do Terraform: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
Para executar o modelo:
-
Clone o repositório.
-
Navegue até a pasta desejada
-
Faça login na sua CLI do Azure (a CLI do Azure deve estar instalada).
-
Atualize os valores da variável em
vars/azure_anf.tfvars
.Você pode optar por implantar o volume do ANF usando um vnet e uma sub-rede existentes definindo a variável "vnet_creation_bool" e o valor "subnet_creation_bool" como false e fornecendo o valor "subnet_id_for_anf_vol". Você também pode definir esses valores como verdadeiro e criar um novo vnet e sub-rede. Nesse caso, o ID da sub-rede será automaticamente retirado da sub-rede recém-criada. -
Inicialize o repositório do Terraform para instalar todos os pré-requisitos e se preparar para implantação.
-
Verifique os arquivos do Terraform usando o comando Terraform Validate.
-
Faça uma execução seca da configuração para obter uma prévia de todas as alterações esperadas pela implantação.
-
Execute a implantação
Para excluir a implantação
Single Node Instance
Variáveis Terraform para volume único do NetApp ANF.
Nome | Tipo | Descrição |
---|---|---|
az_location |
Cadeia de carateres |
(Obrigatório) especifica a localização do Azure suportada onde o recurso existe. Mudar isso força um novo recurso a ser criado. |
az_prefix |
Cadeia de carateres |
(Obrigatório) o nome do grupo de recursos onde o volume NetApp deve ser criado. Mudar isso força um novo recurso a ser criado. |
az_vnet_address_space |
Cadeia de carateres |
(Obrigatório) o espaço de endereço a ser usado pelo vnet recém-criado para implantação de volume do ANF. |
az_subnet_address_prefix |
Cadeia de carateres |
(Obrigatório) o prefixo de endereço de sub-rede a ser usado pelo vnet recém-criado para implantação de volume do ANF. |
az_volume_path |
Cadeia de carateres |
(Obrigatório) Um caminho de arquivo exclusivo para o volume. Usado ao criar destinos de montagem. Mudar isso força um novo recurso a ser criado. |
az_capacity_pool_size |
Número inteiro |
(Obrigatório) tamanho do pool de capacidade mencionado em TB. |
az_vnet_creation_bool |
Booleano |
(Obrigatório) defina este booleano para |
az_subnet_creation_bool |
Booleano |
(Obrigatório) defina este booleano para |
az_subnet_id_for_anf_vol |
Cadeia de carateres |
(Obrigatório) mencione o ID da sub-rede caso decida usar uma sub-rede existente |
az_NetApp_pool_service_level |
Cadeia de carateres |
(Obrigatório) o desempenho de destino do sistema de arquivos. Os valores válidos incluem |
az_NetApp_vol_service_level |
Cadeia de carateres |
(Obrigatório) o desempenho de destino do sistema de arquivos. Os valores válidos incluem |
az_NetApp_vol_protocol |
Cadeia de carateres |
(Opcional) o protocolo de volume alvo expresso em uma lista. O valor único suportado inclui |
az_NetApp_vol_security_style |
Cadeia de carateres |
(Opcional) estilo de segurança de volume, os valores aceitos são |
az_NetApp_vol_storage_quota |
Cadeia de carateres |
(Obrigatório) a cota máxima de armazenamento permitida para um sistema de arquivos em Gigabytes. |
|
De acordo com a recomendação, este script usa o prevent_destroy argumento ciclo de vida para mitigar a possibilidade de perda acidental de dados no arquivo de configuração. Para obter mais informações sobre o prevent_destroy argumento ciclo de vida, consulte a documentação do Terraform: https://developer.hashicorp.com/terraform/tutorials/state/resource-lifecycle#prevent-resource-deletion.
|
GCP
Esta seção contém vários arquivos de configuração do Terraform para implantar/configurar o NetApp CVO (Cloud Volumes ONTAP) de nó único no GCP (Google Cloud Platform).
Documentação do Terraform: https://registry.terraform.io/providers/NetApp/netapp-cloudmanager/latest/docs
Para executar o modelo:
-
Clone o repositório.
-
Navegue até a pasta desejada
-
Salve o arquivo JSON da chave de autenticação do GCP no diretório.
-
Atualize os valores da variável em
vars/gcp_cvo_single_node_deployment.tfvar
Você pode optar por implantar o conetor definindo o valor da variável "gcp_Connector_deploy_bool" como true/false. -
Inicialize o repositório do Terraform para instalar todos os pré-requisitos e se preparar para implantação.
-
Verifique os arquivos do Terraform usando o comando Terraform Validate.
-
Faça uma execução seca da configuração para obter uma prévia de todas as alterações esperadas pela implantação.
-
Execute a implantação
Para excluir a implantação
Connector
Variáveis Terraform para instância do conetor do NetApp GCP para implantação do CVO.
Nome | Tipo | Descrição |
---|---|---|
gcp_connector_deploy_bool |
Bool |
(Necessário) Verifique se há ativação do conetor. |
gcp_connector_name |
Cadeia de carateres |
(Obrigatório) o nome do conetor do Cloud Manager. |
gcp_connector_project_id |
Cadeia de carateres |
(Obrigatório) o GCP project_id onde o conetor será criado. |
gcp_connector_zone |
Cadeia de carateres |
(Obrigatório) a zona do GCP onde o conetor será criado. |
gcp_connector_company |
Cadeia de carateres |
(Obrigatório) o nome da empresa do utilizador. |
gcp_connector_service_account_email |
Cadeia de carateres |
(Obrigatório) o e-mail do Service_account para a instância do conetor. Essa conta de serviço é usada para permitir que o conetor crie o Cloud volume ONTAP. |
gcp_connector_service_account_path |
Cadeia de carateres |
(Obrigatório) o caminho local do arquivo JSON Service_Account para fins de autorização do GCP. Essa conta de serviço é usada para criar o conetor no GCP. |
gcp_connector_account_id |
Cadeia de carateres |
(Opcional) o ID da conta do NetApp ao qual o conetor será associado. Se não for fornecido, o Cloud Manager usará a primeira conta. Se nenhuma conta existir, o Cloud Manager criará uma nova conta. Você pode encontrar o ID da conta na guia conta do Cloud Manager em https://cloudmanager.netapp.com. |
Single Node Instance
Variáveis Terraform para uma única instância do NetApp CVO no GCP.
Nome | Tipo | Descrição |
---|---|---|
gcp_cvo_name |
Cadeia de carateres |
(Obrigatório) o nome do ambiente de trabalho Cloud Volumes ONTAP. |
gcp_cvo_project_id |
Cadeia de carateres |
(Obrigatório) o ID do projeto GCP. |
gcp_cvo_zone |
Cadeia de carateres |
(Obrigatório) a zona da região onde será criado o ambiente de trabalho. |
gcp_cvo_gcp_service_account |
Cadeia de carateres |
(Obrigatório) o e-mail do gcp_Service_account para permitir a disposição em camadas de dados inativos no Google Cloud Storage. |
gcp_cvo_svm_password |
Cadeia de carateres |
(Obrigatório) a senha de administrador do Cloud Volumes ONTAP. |
gcp_cvo_workspace_id |
Cadeia de carateres |
(Opcional) o ID do espaço de trabalho do Cloud Manager onde você deseja implantar o Cloud Volumes ONTAP. Se não for fornecido, o Cloud Manager usará a primeira área de trabalho. Você pode encontrar o ID na guia Área de trabalho em https://cloudmanager.netapp.com. |
gcp_cvo_license_type |
Cadeia de carateres |
(Opcional) o tipo de licença a utilizar. Para um único nó: ['capacidade-paygo', 'gcp-COT-explore-paygo', 'gcp-COT-standard-paygo', 'gcp-COT-premium-paygo', 'GCP-COT-premium-byol'], para HA: ['ha-Capacity-paygo', 'gcp-COT-explore-paygo', 'gcp-premium-ha-ha-paygo'. O padrão é 'capacidade-paygo' para nó único e 'ha-capacidade-paygo' para HA. |
gcp_cvo_capacity_package_name |
Cadeia de carateres |
(Opcional) o nome do pacote de capacidade: ['essencial', 'Professional', 'Freemium']. O padrão é 'essencial'. |