---
title: Docker Secret
slug: homologacao-atmosphere/docker-secret
description: Learn how to use the Docker secret module in a Docker Swarm environment with this comprehensive document. Discover how to create and remove secrets, and understand the hash representation used to detect changes. Find out the necessary requirements and par
docTags: 
createdAt: 2021-03-16T18:53:39.000Z
---

## Resumo

- Crie e remova secrets do Docker em um ambiente Swarm. Semelhante a `docker secret create` e `docker secret rm`
- Adiciona aos metadados de novos secrets 'atmosphere\_key', uma representação hash criptografada dos dados, que é então usada em execuções futuras para testar se um secret foi alterado. Se 'atmosphere\_key não estiver presente, um secret não será atualizado a menos que a opção *force* seja definida.
- As atualizações dos secrets são realizadas removendo o secret e criando-o novamente.

## Requisitos

- API Docker> = 1.25



## Parâmetros

| **Parâmetro**                                                  | **Tipo**   | **Escolhas \| Valor Padrão**                     | **Comentários**                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| -------------------------------------------------------------- | ---------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| api\_version<br /><br />aliases: docker\_api\_version          | string     | Escolhas:<br />- "auto"                          | A versão da API Docker em execução no Docker Host.O padrão é a versão mais recente da API suportada pelo Docker SDK para Python e o docker daemon.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_API_VERSION` será usado. Se a variável de ambiente não for definida, o valor padrão será usado.                                                                                                                                                     |
| ca\_cert<br /><br />aliases: tls\_ca\_cert, cacert\_path       | path       |                                                  | Use um certificado CA ao executar a verificação do servidor, fornecendo o caminho para um arquivo de certificado CA.Se o valor não for especificado na tarefa e a variável de ambiente `DOCKER_CERT_PATH` for definida, o arquivo ca.pemdo diretório especificado na variável de ambiente DOCKER\_CERT\_PATHserá usado.                                                                                                                                                                  |
| client\_cert<br /><br />aliases: tls\_client\_cert, cert\_path | path       |                                                  | Caminho para o arquivo de certificado TLS do cliente.Se o valor não for especificado na tarefa e a variável de ambiente `DOCKER_CERT_PATH` for definida, o arquivo cert.pemdo diretório especificado na variável de ambiente DOCKER\_CERT\_PATHserá usado.<br />aliases: tls\_client\_cert, cert\_path                                                                                                                                                                                   |
| client\_key<br /><br />aliases: tls\_client\_key, key\_path    | path       |                                                  | Caminho para o arquivo de chave TLS do cliente.Se o valor não for especificado na tarefa e a variável de ambiente `DOCKER_CERT_PATH` for definida, o arquivo key.pemdo diretório especificado na variável de ambiente `DOCKER_CERT_PATH` será usado.                                                                                                                                                                                                                                     |
| data                                                           | string     |                                                  | O valor do secret. Obrigatório quando o estado for `present`.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| data\_is\_b64                                                  | boolean    | Escolhas:<br />- false (default)<br />- true     | Se definido como `true`, os dados são considerados codificados em Base64 e serão decodificados antes de serem usados.Para usar *dados* binários , é melhor mantê-los codificados em Base64 e permitir que sejam decodificados por esta opção.                                                                                                                                                                                                                                            |
| debug                                                          | boolean    | Escolhas:<br />- false (default)<br />- true     | Modo de depuração                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| docker\_host<br /><br />aliases: docker\_url                   | string     | Escolhas:<br />- "unix://var/run/docker.sock"    | O URL ou o caminho do soquete Unix usado para se conectar à API Docker. Para se conectar a um host remoto, forneça a string de conexão TCP. Por exemplo `tcp://192.0.2.23:2376`. Se TLS for usado para criptografar a conexão, o módulo será automaticamente substituído `tcp` na URL de conexão por `https`.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_HOST` será usado. Se a variável de ambiente não for definida, o valor padrão será usado. |
| force                                                          | boolean    | Escolhas:<br />- false (default)<br />- true     | Use com estado presentpara sempre remover e recriar um secret existente.Se `true`, um secret existente será substituído, mesmo que não tenha sido alterado.                                                                                                                                                                                                                                                                                                                              |
| labels                                                         | dictionary |                                                  | Um mapa de metadados chave: valor, onde se espera que a chave e o valor sejam strings.Se novos metadados forem fornecidos, ou os metadados existentes forem modificados, o secret será atualizado removendo-o e criando-o novamente.                                                                                                                                                                                                                                                     |
| name - required                                                | string     |                                                  | O nome do secret.                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ssl\_version                                                   | string     |                                                  | Forneça um número de versão SSL válido. Valor padrão determinado pelo módulo ssl.py.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_SSL_VERSION` será usado.                                                                                                                                                                                                                                                                                          |
| state                                                          | string     | Escolhas:<br />- present (default)<br />- absent | Defina como `present`, se o secret existir e `absent`, se não existir .                                                                                                                                                                                                                                                                                                                                                                                                                  |
| timeout                                                        | integer    | Escolhas:<br />- 60                              | O tempo máximo em segundos de espera por uma resposta da API.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_TIMEOUT` será usado. Se a variável de ambiente não for definida, o valor padrão será usado.                                                                                                                                                                                                                                              |
| tls                                                            | boolean    | Escolhas:<br />- false (default)<br />- true     | Proteja a conexão com a API usando TLS sem verificar a autenticidade do servidor host Docker. Observe que se *validate\_certs também* for definido `yes`, ele terá precedência.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_TLS` será usado. Se a variável de ambiente não for definida, o valor padrão será usado.                                                                                                                                |
| tls\_hostname                                                  | string     | Escolhas:<br />- "localhost"                     | Ao verificar a autenticidade do servidor Docker Host, forneça o nome esperado do servidor.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_TLS_HOSTNAME` será usado. Se a variável de ambiente não for definida, o valor padrão será usado.                                                                                                                                                                                                            |
| validate\_certs<br /><br />aliases: tls\_verify                | boolean    | Escolhas:<br />- false (default)<br />- true     | Proteja a conexão com a API usando TLS e verificando a autenticidade do servidor host Docker.Se o valor não for especificado na tarefa, o valor da variável de ambiente `DOCKER_TLS_VERIFY` será usado. Se a variável de ambiente não for definida, o valor padrão será usado.                                                                                                                                                                                                           |




## Notas

- Conecte-se ao daemon Docker fornecendo parâmetros com cada tarefa ou definindo variáveis ​​de ambiente. Você pode definir  `DOCKER_HOST`,  `DOCKER_TLS_HOSTNAME`,  `DOCKER_API_VERSION`,  `DOCKER_CERT_PATH`,  `DOCKER_SSL_VERSION`,  `DOCKER_TLS`,  `DOCKER_TLS_VERIFY` e  `DOCKER_TIMEOUT`. Se você estiver usando uma máquina docker, execute o script enviado com o produto que configura o ambiente. Ele definirá essas variáveis ​​para você.
- Observe que o SDK do Docker para Python permite apenas especificar o caminho para a configuração do Docker para muito poucas funções. Em geral, ele será usado  `$HOME/.docker/config.jsons` e a `DOCKER_CONFIG` variável de ambiente não for especificada, e caso contrário `$DOCKER_CONFIG/config.json`.

## Exemplos

```yaml
# Crie foo secret (de um arquivo na máquina de controle)
  docker_secret:
    name: foo
    data: "{{ lookup('file', '/path/to/secret/file') | b64encode }}"
    data_is_b64: true
    state: present

# Altere os dados secrets
  docker_secret:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: baz
      one: '1'
    state: present

# Adicionar um novo rótulo
  docker_secret:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: baz
      one: '1'
      # Adicionar um novo rótulo irá causar a remoção/criação do secret
      two: '2'
    state: present

# Sem mudança
  docker_secret:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: baz
      one: '1'
      # Mesmo que "two" esteja faltando, não há alteração no secret existente
    state: present

# Atualizar um rótulo existente
  docker_secret:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: monkey   
      # Alterar um rótulo irá causar a remoção/criação do segredo
      one: '1'
    state: present

# Força a remoção/criação do segredo
  docker_secret:
    name: foo
    data: Goodnight everyone!
    force: yes
    state: present

# Remover o foo secret
  docker_secret:
    name: foo
    state: absent
```

## Valores Retornados

| **Chave**  | **Tipo** | **Retornado quando** | **Descrição**                                |
| ---------- | -------- | -------------------- | -------------------------------------------- |
| secret\_id |  string  | state = present      | O ID atribuído pelo Docker ao objeto secret. |


