Criando um ambiente
Dentro do seu projeto, crie um ambiente para agrupar configurações relacionadas e compartilhar valores entre elas para facilitar as implantações. As propriedades que você adiciona a um ambiente são automaticamente adicionadas às configurações que estão usando esse ambiente. Dentro da configuração, pode-se substituir quaisquer valores fornecidos pelo ambiente. Para obter mais informações, consulte os benefícios de usar ambientes.
Ao editar uma configuração, você pode selecionar um ambiente para a configuração usar na seção Definir detalhes.
Antes de Iniciar
Você deve ter a função de Editor ou superior no serviço Projetos do IBM Cloud® para criar e editar ambientes. Para obter mais informações sobre acesso e permissões, consulte Atribuir acesso de usuários a projetos.
Criando um ambiente usando o console
Para criar um ambiente a partir do seu projeto, execute as seguintes etapas:
- No console IBM Cloud, clique no ícone do menu
> Projetos e selecione um projeto.
- Na guia Gerenciar, selecione Ambientes.
- Clique em Criar.
- Forneça um nome para o seu ambiente e clique em Adicionar para adicionar propriedades.
Existem três categorias de propriedades que você pode adicionar a um ambiente: autenticação, conformidade e entrada. Você pode adicionar essas propriedades manualmente ou adicionar várias propriedades de uma só vez a partir de uma configuração em seu projeto.
Adicionando propriedades manualmente
Se você adicionar propriedades manualmente, considere adicionar primeiro o método de autenticação. O método de autenticação da sua conta de destino é necessário para autorizar uma implantação nessa conta de destino. O método de autenticação também é usado se você deseja obter uma política de autenticação de dois fatores ( Workload Protection ) da sua conta de destino. Você pode adicionar apenas uma propriedade de autenticação a um ambiente e só pode adicionar uma propriedade de conformidade a um ambiente se tiver uma instância, zona e política do Workload Protection na conta de destino que deseja usar. Sua instância do Workload Protection também deve estar habilitada para CSPM. Não é possível adicionar uma propriedade de conformidade que utilize os controles padrão da arquitetura implantável, pois esses controles padrão variam de arquitetura para arquitetura.
Você deve primeiro fornecer uma propriedade de autenticação em seu ambiente com detalhes de autenticação válidos se quiser adicionar uma propriedade de conformidade e especificar uma política de Workload Protection. Você pode usar uma chave API com Secrets Manager ou pode usar um perfil confiável para autenticar com a conta de destino que contém seu anexo Workload Protection.
As informações de autenticação e conformidade são usadas em todas as configurações, portanto, se você adicionar uma propriedade de autenticação ou uma propriedade de conformidade ao seu ambiente, ela será automaticamente adicionada a qualquer configuração que esteja usando o ambiente.
Os valores de entrada também podem ser adicionados como propriedades ao seu ambiente. Quando você adiciona uma entrada a um ambiente, o nome da sua entrada no ambiente deve corresponder ao nome da entrada nas configurações que estão usando
o ambiente. Se os nomes não corresponderem, o valor do ambiente não será usado na configuração. Por exemplo, se você adicionar uma entrada ao seu ambiente e nomeá-la resource_group, mas uma configuração que está usando esse
ambiente tiver uma entrada chamada, resourcegroup o valor do ambiente não será usado nessa configuração.
Várias arquiteturas podem usar o mesmo ambiente, mas nem todas as arquiteturas têm os mesmos nomes de entrada para valores semelhantes. Você pode adicionar várias entradas ao seu ambiente com o mesmo valor, mas nomes diferentes. Por exemplo,
você pode adicionar duas propriedades de entrada e nomear uma resource_group e a outra resourcegroup. Mantenha os valores iguais para ambas as propriedades. Qualquer configuração que esteja usando o ambiente e tenha
um nome resource_group de entrada ou um nome resourcegroup de entrada usará o mesmo valor do ambiente.
Para adicionar uma propriedade manualmente, conclua as etapas a seguir:
-
Depois de criar seu ambiente, clique no ícone Editar
o ambiente.
-
Clique em Adicionar > Adicionar manualmente...
-
Selecione a categoria de imóvel que deseja adicionar.
Considere adicionar primeiro uma propriedade de autenticação com detalhes de autenticação válidos para sua conta de destino.
-
Forneça os detalhes da propriedade e clique em Adicionar.
-
Clique em Salvar.
Adição de propriedades a partir de uma configuração
Economize tempo e reduza erros adicionando várias propriedades ao seu ambiente a partir de uma configuração. Ao fazer isso, você ajuda a garantir que as propriedades estejam corretas em seu ambiente, pois os nomes e valores inseridos são extraídos diretamente da configuração selecionada. Depois de adicionar as propriedades de uma configuração, você pode editá-las no ambiente sem afetar sua configuração. As edições futuras em sua configuração não afetam as propriedades em seu ambiente.
Para adicionar várias propriedades a partir de uma configuração, execute as seguintes etapas:
- Depois de criar seu ambiente, clique no ícone Editar
o ambiente.
- Clique em Adicionar > Adicionar a partir de uma configuração...
- Selecione a configuração que você deseja usar para adicionar propriedades ao seu ambiente.
- Selecione os itens da configuração que deseja adicionar ao seu ambiente e clique em Adicionar.
Criação de um ambiente usando a CLI
Para criar um ambiente usando a CLI, execute o seguinte ibmcloud project environment-create comando:
ibmcloud project environment-create --project-id PROJECT-ID [--definition DEFINITION]
Dentro do definition, você pode especificar as propriedades de entrada que deseja incluir em seu ambiente usando a inputs opção. Da mesma forma, você pode especificar uma propriedade de autenticação em seu ambiente
usando a authorizations opção dentro do definition. E você pode adicionar uma propriedade de conformidade incluindo a compliance-profile opção dentro do definition também.
Por exemplo, o comando a seguir cria um ambiente chamado development e tem uma propriedade de entrada que define o grupo de recursos:
ibmcloud project environment-create \
--project-id exampleString \
--definition '{"name": "development", "inputs": {"resource_group" : "stage"}}'
Da mesma forma, o comando a seguir cria um ambiente chamado development e possui uma propriedade de entrada que define o grupo de recursos. Um perfil confiável também é fornecido como uma propriedade de autenticação:
ibmcloud project environment-create \
--project-id exampleString \
--definition '{
"name": "development",
"authorizations": {
"method": "trusted_profile",
"trusted_profile_id": "<trusted-profile-id>"
},
"inputs": {
"resource_group": "stage"
},
"compliance_profile": {
"id": "<profile-id>",
"instance_id": "<instance-id>",
"instance_location": "us-south",
"profile_name": "{\"instance_crn\":\"crn:v1:staging:public:compliance:us-south:a/<account>:<instance-id>::\",\"instance_label\":\"compliance\",\"name\":\"Basic Control\",\"version\":\"1.0.0\",\"attachment_label\":\"basic\"}",
"attachment_id": "<attachment-id>"
}
}'
Para obter mais informações sobre os parâmetros do comando, consulte ibmcloud project environment-create.
Criação de um ambiente usando a API
Você pode criar um ambiente programaticamente chamando a API de projetos, conforme mostrado na seguinte solicitação de exemplo. O exemplo cria um ambiente
chamado development e possui duas propriedades de entrada, uma para definir o grupo de recursos e outra para definir a região:
curl -X POST --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{ "definition": { "name": "development", "description": "The environment 'development'", "authorizations": { "method": "api_key", "api_key": "TbcdlprpFODhkpns9e0daOWnAwd2tXwSYtPn8rpEd8d9" }, "inputs": { "resource_group": "stage", "region": "us-south" }, "compliance_profile": { "id": "some-profile-id", "instance_id": "some-instance-id", "instance_location": "us-south", "profile_name": "some-profile-name", "attachment_id": "some-attachment-id" } } }' \
"{base_url}/v1/projects/{project_id}/environments"