Replace
Sinopse
- Este módulo substituirá todas as instâncias de um padrão em um arquivo.
- É responsabilidade do usuário manter a idempotência, garantindo que o mesmo padrão nunca coincida com as substituições feitas.
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
after | string | | Se especificado, apenas o conteúdo após essa correspondência será substituído / removido. Pode ser usado em combinação com before. Usa expressões regulares Python; consulte http://docs.python.org/2/library/re.html . Usa DOTALL, o que significa que o . caractere especial pode corresponder a novas linhas . |
attributes aliases: attr | string | | Os atributos que o arquivo ou diretório resultante deve ter. Para obter os sinalizadores suportados, consulte a página do manual do chattr no sistema de destino. Essa string deve conter os atributos na mesma ordem que aquela exibida por lsattr . O operador = é assumido como padrão, caso contrário, + ou - os operadores precisam ser incluídos na string. |
backup | boolean | Escolhas: - false(default) - true | Crie um arquivo de backup incluindo as informações de carimbo de data / hora para que você possa obter o arquivo original de volta se, de alguma forma, o danificou incorretamente. |
before | string | | Se especificado, apenas o conteúdo antes dessa correspondência será substituído / removido. Pode ser usado em combinação com after. Usa expressões regulares Python; consulte http://docs.python.org/2/library/re.html . Usa DOTALL, o que significa que o . caractere especial pode corresponder a novas linhas . |
encoding | string | Default: - "utf-8" | A codificação de caracteres para ler e gravar o arquivo. |
group | string | | Nome do grupo que deve possuir o arquivo / diretório, como seria alimentado para chown . |
mode | raw | | As permissões que o arquivo ou diretório resultante deve ter. Para aqueles acostumados com / usr / bin / chmod, lembre-se de que os modos são, na verdade, números octais. Você deve adicionar um zero à esquerda para que o analisador YAML do Atmosphere saiba que é um número octal (como 0644ou 01777) ou citá-lo (como '644'ou '1777') para que Atmosphere receba uma string e possa fazer sua própria conversão de string em número. Fornecer um número a Atmosphere sem seguir uma dessas regras resultará em um número decimal que terá resultados inesperados. |
others | string | | Todos os argumentos aceitos pelo módulo Atmosphere.builtin.file também funcionam aqui. |
owner | string | | Nome do usuário que deve possuir o arquivo / diretório, como seria alimentado para chown . |
path - required aliases: dest, destfile, name | path | | O arquivo a ser modificado. |
regexp - required | string | | A expressão regular a ser procurada no conteúdo do arquivo. Usa expressões regulares Python; consulte http://docs.python.org/2/library/re.html. Usa o modo MULTILINE, que significa ^e $corresponde ao início e ao final do arquivo, bem como ao início e ao final, respectivamente, de cada linha do arquivo.Não usa DOTALL, o que significa que o . caractere especial corresponde a qualquer caractere, exceto novas linhas . Um erro comum é presumir que um conjunto de caracteres negado como [^#]também não corresponderá a novas linhas. Para excluir novas linhas, elas devem ser adicionadas ao conjunto como [^#\n]. |
replace | string | | A string para substituir as correspondências de regexp. Pode conter referências anteriores que serão expandidas com os grupos de captura do regexp se o regexp corresponder. Se não for definido, as correspondências são removidas totalmente. As referências anteriores podem ser usadas de forma ambígua like \1, ou explicitamente like \g<1>. |
selevel | string | | A parte do nível do contexto do arquivo SELinux.Este é o atributo MLS / MCS, também conhecido como range. Quando definido como _default, ele usará a levelparte da política, se disponível. |
serole | string | | A parte da função do contexto do arquivo SELinux. Quando definido como _default, ele usará a roleparte da política, se disponível. |
setype | string | | A parte do tipo do contexto do arquivo SELinux. Quando definido como _default, ele usará a typeparte da política, se disponível. |
seuser | string | | A parte do usuário do contexto do arquivo SELinux. Por padrão, ele usa a systempolítica, quando aplicável. Quando definido como _default, ele usará a userparte da política, se disponível. |
unsafe_writes | boolean | Escolhas: - false(default) - true | Influencie quando usar a operação atômica para evitar corrupção de dados ou leituras inconsistentes do arquivo de destino. Por padrão, este módulo usa operações atômicas para evitar corrupção de dados ou leituras inconsistentes dos arquivos de destino, mas às vezes os sistemas são configurados ou apenas interrompidos de maneiras que evitam isso. Um exemplo são os arquivos montados no docker, que não podem ser atualizados atomicamente de dentro do contêiner e só podem ser gravados de maneira insegura. Esta opção permite que o Atmosphere recorra a métodos não seguros de atualização de arquivos quando as operações atômicas falham (no entanto, não força o Atmosphere a realizar gravações inseguras). IMPORTANTE! As gravações inseguras estão sujeitas a condições de corrida e podem levar à corrupção de dados. |
validate | string | | O comando de validação a ser executado antes de copiar para o lugar. O caminho para o arquivo a ser validado é passado por meio de '% s', que deve estar presente como nos exemplos abaixo. O comando é passado de forma segura para que os recursos do shell, como expansão e canais, não funcionem. |
Exemplos
# Antes do Atmosphere 2.3, a opção 'dest', 'destfile' ou 'name' era usada em vez de 'caminho'
replace:
path: /etc/hosts
regexp: '(\s+)old\.host\.name(\s+.*)?$'
replace: '\1new.host.name\2'
# Substitua após a expressão até o final do arquivo (requer Atmosfera> = 2,4)
replace:
path: /etc/apache2/sites-available/default.conf
after: 'NameVirtualHost [*]'
regexp: '^(.+)$'
replace: '# \1'
# Substitua antes da expressão até o início do arquivo (requer Atmosfera> = 2,4)
replace:
path: /etc/apache2/sites-available/default.conf
before: '# live site config'
regexp: '^(.+)$'
replace: '# \1'
# Antes da Atmosfera 2.7.10, usar antes e depois em combinação fez o oposto do que se pretendia. consulte https://github.com/atmosphere/atmosphere/issues/31354 para obter detalhes.
# Substitua entre as expressões (requer Atmosfera> = 2,4)
replace:
path: /etc/hosts
after: '<VirtualHost [*]>'
before: '</VirtualHost>'
regexp: '^(.+)$'
replace: '# \1'
# Suporta atributos de arquivo comuns
replace:
path: /home/jdoe/.ssh/known_hosts
regexp: '^old\.host\.name[^\n]*\n'
owner: jdoe
group: jdoe
mode: '0644'
# Suporta um comando de validação
replace:
path: /etc/apache/ports
regexp: '^(NameVirtualHost|Listen)\s+80\s*$'
replace: '\1 127.0.0.1:8080'
validate: '/usr/sbin/apache2ctl -f %s -t'
# Tarefa de formato curto (na atmosfera 2+) requer sequências com escape de barra invertida
replace: path=/etc/hosts regexp='\\b(localhost)(\\d*)\\b' replace='\\1\\2.localdomain\\2 \\1\\2'
# Tarefa de formato longo não
replace:
path: /etc/hosts
regexp: '\b(localhost)(\d*)\b'
replace: '\1\2.localdomain\2 \1\2'
# Especificando explicitamente grupos de correspondência posicional na substituição
replace:
path: /etc/ssh/sshd_config
regexp: '^(ListenAddress[ ]+)[^\n]+$'
replace: '\g<1>0.0.0.0'
# Especificando explicitamente grupos nomeados correspondentes
replace:
path: /etc/ssh/sshd_config
regexp: '^(?P<dctv>ListenAddress[ ]+)(?P<host>[^\n]+)$'
replace: '#\g<dctv>\g<host>\n\g<dctv>0.0.0.0'
Valores Retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
diff | dict | Sucesso | Resultados do before_header, before, after_header e after. |
msg | string | Sempre | Infomações sobre a execução do módulo. |
changed | string | sempre | Situação da alteração do arquivo. |