Lineinfile
Resumo
- Este módulo garante que uma linha específica esteja em um arquivo ou substitua uma linha existente usando uma expressão regular com referência anterior.
- Isso é útil principalmente quando você deseja alterar uma única linha em um arquivo apenas.
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
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. |
backrefs | boolean | Escolhas: - false(default) - true | Usado com state=present. Se definido, line pode conter referências anteriores (posicionais e nomeadas) que serão preenchidas se as regexp correspondências. Este parâmetro altera ligeiramente a operação do módulo; insertbefore e insertafter será ignorado e, se regexp não corresponder a nenhuma parte do arquivo, o arquivo não será alterado. Se o regexp corresponder, a última linha correspondente será substituída pelo parâmetro de linha expandida. |
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. |
create | boolean | Escolhas: - false(default) - true | Usado com state=present. Se especificado, o arquivo será criado se ainda não existir. Por padrão, ele falhará se o arquivo estiver ausente. |
firstmatch | boolean | Escolhas: - false(default) - true | Usado com insertafterou insertbefore. Se definido, insertafter e insertbefore funcionará com a primeira linha que corresponda à expressão regular fornecida. |
group | string | | Nome do grupo que deve possuir o arquivo / diretório, como seria alimentado para chown . |
insertafter | string | Escolhas: - EOF(default) - *regex* | Usado com state=present. Se especificada, a linha será inserida após a última correspondência da expressão regular especificada. Se a primeira correspondência for necessária, use (firstmatch = yes). Um valor especial está disponível; EOFpara inserir a linha no final do arquivo. Se a expressão regular especificada não tiver correspondências, EOF será usado em seu lugar. Se insertbeforefor definido, o valor padrão EOF será ignorado. Se expressões regulares forem passadas para ambos regexp e insertafter, insertafter somente será honrado se nenhuma correspondência para regexpfor encontrada. Não pode ser usado com backrefs ou insertbefore. |
insertbefore | string | Escolhas: - BOF(default) - *regex* | Usado com state=present.Se especificado, a linha será inserida antes da última correspondência da expressão regular especificada. Se a primeira correspondência for necessária, use firstmatch=yes. Um valor está disponível; BOF para inserir a linha no início do arquivo. Se a expressão regular especificada não tiver correspondências, a linha será inserida no final do arquivo. Se expressões regulares forem passadas para ambos regexp e insertbefore, insertbefore somente será honrado se nenhuma correspondência para regexpfor encontrada. Não pode ser usado com backrefs ou insertafter. |
line | string | | A linha a ser inserida / substituída no arquivo. Obrigatório para state=present. Se backrefs for definido, pode conter referências anteriores que serão expandidas com os regexp grupos de captura se o regexp corresponder. |
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 o 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 | path | | O arquivo a ser modificado. |
regexp | string | | A expressão regular a ser procurada em cada linha do arquivo. Para state=present, o padrão a ser substituído, se encontrado. Apenas a última linha encontrada será substituída. Para state=absent, o padrão da (s) linha (s) a remover. Se a expressão regular não for correspondida, a linha será adicionada ao arquivo de acordo com as configurações de insertbeforeou insertafter. Ao modificar uma linha, a expressão regular deve corresponder ao estado inicial da linha e também ao estado após a substituição por linepara garantir a idempotência. Usa expressões regulares Python. Consulte https://docs.python.org/3/library/re.html . |
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 system política, quando aplicável. Quando definido como _default, ele usará a userparte da política, se disponível. |
state | string | Escolhas: - present(default) - absent | Se a linha deve estar lá ou não. |
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
# Certifique-se de que o SELinux está configurado para o modo de aplicação
lineinfile:
path: /etc/selinux/config
regexp: '^SELINUX='
line: SELINUX=enforcing
# Certifique-se de que a roda do grupo não está na configuração sudoers
lineinfile:
path: /etc/sudoers
state: absent
regexp: '^%wheel'
# Substitua uma entrada localhost pela nossa
lineinfile:
path: /etc/hosts
regexp: '^127\.0\.0\.1'
line: 127.0.0.1 localhost
owner: root
group: root
mode: '0644'
# Certifique-se de que a porta Apache padrão é 8080
lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: '^Listen '
insertafter: '^#Listen '
line: Listen 8080
# Certifique-se de ter nosso próprio comentário adicionado a / etc / services
lineinfile:
path: /etc/services
regexp: '^# port for http'
insertbefore: '^www.*80/tcp'
line: '# port for http by default'
# Adicione uma linha a um arquivo se o arquivo não existir, sem passar regexp
lineinfile:
path: /tmp/testfile
line: 192.168.1.99 foo.lab.net foo
create: yes
# NOTA: Yaml requer barras invertidas de escape entre aspas duplas, mas não entre aspas simples
# Certifique-se de que as configurações de memória do JBoss sejam exatamente conforme necessário
lineinfile:
path: /opt/jboss-as/bin/standalone.conf
regexp: '^(.*)Xms(\\d+)m(.*)$'
line: '\1Xms${xms}m\3'
backrefs: yes
# NOTA: Totalmente citado devido ao ':' na linha. Veja as dicas nos documentos YAML.
# Valide o arquivo sudoers antes de salvar
lineinfile:
path: /etc/sudoers
state: present
regexp: '^%ADMIN ALL='
line: '%ADMIN ALL=(ALL) NOPASSWD: ALL'
validate: /usr/sbin/visudo -cf %s
Valores Retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
changed | string | sempre | Infomações da modificação |