S3 Sync
Resumo
- O módulo S3 é ótimo, mas é muito lento para um grande volume de arquivos - até mesmo uma dúzia será perceptível. Além da velocidade, ele lida com globbing, inclusões/exclusões, tipos mime, mapeamento de expiração, recursão, controle de cache e mapeamento de diretório inteligente.
Requisitos
- boto3 >= 1.15.0
- botocore >= 1.18.0
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
aws_access_key | string | | Chave de acesso AWS. Se não for definido, o valor da variável de ambiente AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY ou EC2_ACCESS_KEY será usado. Se o perfil estiver definido, esse parâmetro será ignorado. |
aws_ca_bundle | path | | A localização de um CA Bundle a ser usado ao validar certificados SSL. |
aws_config | dictionary | | Um dicionário para modificar a configuração do botocore. Os parâmetros podem ser encontrados em https://botocore.amazonaws.com/v1. Apenas a chave 'user_agent' é usada para módulos boto. Consulte boto.cloudhackers.com para obter mais configurações de boto. |
aws_secret_key | string | | Chave secreta da AWS. Se não for definido, o valor da variável de ambiente AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY ou EC2_SECRET_KEY será usado. Se o perfil for definido, este parâmetro será ignorado. |
bucket - required | string | | Nome do Bucket. |
cache_control | string | | Cabeçalho Cache-Control definido em objetos carregados. As diretivas são separadas por vírgulas. |
debug_botocore_endpoint_logs | boolean | Escolhas - false(default) - true | Use um registrador botocore.endpoint para analisar as chamadas de API "resource:action" exclusivas (em vez do total): feitas durante uma tarefa, enviando o conjunto para a chave resource_actions nos resultados da tarefa. Use o retorno de chamada aws_resource_action para gerar a lista total feita durante um playbook. A variável de ambiente ANSIBLE_DEBUG_BOTOCORE_LOGS também pode ser usada. |
delete | boolean | Escolhas - false(default) - true | Remova os arquivos remotos que existem no bucket, mas não estão presentes na raiz do arquivo. |
ec2_url | string | | URL a ser usada para conectar-se ao EC2 ou à sua nuvem Eucalyptus (por padrão, o módulo usará endpoints do EC2). Ignorado para módulos onde a região é necessária. Deve ser especificado para todos os outros módulos se a região não for usada. Se não for definido, o valor da variável de ambiente EC2_URL, se houver, será usado. |
exclude | string | Default: - "*" | Correspondência de arquivo no estilo de padrão de shell. Usado após incluir para remover arquivos (por exemplo, pule "*.txt") Para vários patterns, separe-os por vírgulas. |
file_change_strategy | string | Escolhas - force - checksum - data_size(default) | Método de determinação de diferença para permitir a sincronização somente de alterações. Ao contrário do rsync, os arquivos não são corrigidos - eles são totalmente ignorados ou totalmente carregados. date_size será carregado se os tamanhos dos arquivos não corresponderem ou se a data de modificação do arquivo local for mais recente que a versão do s3 checksum irá comparar os valores de etag com base na implementação do s3 de md5s em pedaços. force sempre fará o upload de todos os arquivos. |
file_root - required | path | | Caminho de arquivo/diretório para sincronização. Este é um caminho local. Esse caminho raiz é removido do nome da chave, portanto, os subdiretórios permanecerão como chaves. |
include | string | Default: - "*" | Correspondência de arquivo no estilo de padrão de shell. Usado antes de excluir para determinar arquivos qualificados (por exemplo, apenas "*.gif") Para vários patterns, separe-os por vírgulas. |
key_prefix | string | | Além do caminho do arquivo, acrescente o caminho s3 com este prefixo. O módulo adicionará uma barra no final do prefixo, se necessário. |
mime_map | dictionary | | Ditar a entrada da extensão para o tipo MIME. Isso substituirá qualquer tipo MIME padrão/farejado. Por exemplo {".txt": "aplicativo/texto", ".yml": "aplicativo/texto"} |
mode | string | Escolhas - push(defauçt) | direção de sincronização. |
permission | string | Escolhas - private - public-read - public-read-write - authenticated-read - aws-exec-read - bucket-owner-read - bucket-owner-full-control | ACL predefinido para aplicar a arquivos sincronizados. Alterar esta ACL altera apenas os arquivos recém-sincronizados, não aciona um reenvio completo. |
profile | string | | O uso do profile substituirá aws_access_key, aws_secret_key e security_token. |
region | string | | A região da AWS a ser usada. Se não for especificado, o valor da variável de ambiente AWS_REGION ou EC2_REGION, se houver, será usado. Consulte http://docs.aws.amazon.com |
security_token | string | | Token de segurança do AWS STS. Se não for definido, o valor da variável de ambiente AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN será usado. Se o perfil for definido, este parâmetro será ignorado. |
storage_class | string | Escolhas - STANDAR - REDUCED_REDUNDANCY - STANDARD_IA - ONEZONE_IA - INTELLIGENT_TIERING - GLACIER - DEEP_ARCHIVE - OUTPOSTS | Classe de armazenamento a ser associada a cada objeto adicionado ao bucket do S3. |
validate_certs | boolean | Escolhas: - false - true(default) | Quando definido como "false", os certificados SSL não serão validados para comunicação com as APIs da AWS. |
Extende fragmentos da documentação do módulo ec2 e aws.
Notas
Exemplos
- name: upload básico
s3_sync:
bucket: tedder
file_root: roles/s3/files/
- name: upload básico usando a classe de armazenamento glaciar
s3_sync:
bucket: tedder
file_root: roles/s3/files/
storage_class: GLACIER
- name: upload de arquivo individual básico
s3_sync:
bucket: tedder
file_root: roles/s3/files/file_name
- name: todas as opções
s3_sync:
bucket: tedder
file_root: roles/s3/files
mime_map:
.yml: application/text
.json: application/text
key_prefix: config_files/web
file_change_strategy: force
permission: public-read
cache_control: "public, max-age=31536000"
storage_class: "GLACIER"
include: "*"
exclude: "*.txt,.*"Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
filelist_actionable | list / elements=string | Sempre | listagem de arquivos (dicts) de arquivos que serão carregados após a decisão da estratégia |
filelist_initial | list / elements=string | Sempre | listagem de arquivos (dicts) do globbing inicial |
filelist_local_etag | list / elements=string | Sempre | listagem de arquivos (dicts) incluindo etag local calculado |
filelist_s3 | list / elements=string | Sempre | listagem de arquivos (dicts) incluindo informações sobre versões carregadas anteriormente |
filelist_typed | list / elements=string | Sempre | listagem de arquivos (dicts) com tipos mime calculados ou substituídos |
uploaded | list / elements=string | Sempre | listagem de arquivos (dicts) de arquivos que foram realmente carregados |