LineInFile

Em construção

Parâmetro
Necessário
Padrão
Opções
Comentários
attributes
(Add em 2.3)
Não None

Atributo que um diretório ou arquivo deve ter. Para descobrir quais opções/flags disponíveis, consulte a página man do comando chattr na máquina de destino. Comando possuí os atributos exibidos pelo lsattr.
alias: attr

backrefs Não Não
  • yes
  • no

Usado com flag state=present. Se definido, a linha poderá conter referências (tanto posicional como nomeada) e serão preenchidas se a expressão regular regexp corresponder. Esta função altera o funcionamento do módulo, insertbefore e insertafter serão ignorados, se expressão regexp não corresponder a nenhum arquivo, ele será mantido inalterado. Se a expressão regexp corresponder, a última linha correspondente será substituída pelo parâmetro.

backup Não Não
  • yes
  • no

Cria um arquivo de backup incluindo informação timestamp para que você consigo restaurar caso tenha algum problema.

create Não Não
  • yes
  • no

Usado com state=present. Se especificado, o arquivo será criado se ainda não existir. Por padrão, ele acusará erro se o arquivo estiver ausente.

group Não

Nome do grupo que será aplicado ao arquivo ou diretório. Função similar comando chown.

insertafter Não EOF
  • EOF
  • *regex*

Usado com state=present. Se especificado, a linha será inserida após a última correspondência da expressão regular. Utilize EOF para inserir a linha no final do arquivo. Se a expressão regular especificada não tiver correspondências, o EOF será usado. Não pode ser usado com backrefs.

insertbefore Não
  • BOF
  • *regex*

Usado com state=present. Se especificado, a linha será inserida após a primeira correspondência da expressão regular. Utilize BOF para inserir a linha no inicio do arquivo. Se a expressão regular especificada não tiver correspondências, o EOF será usado e os dados serão incluídos ao final do arquivo. Não pode ser usado com backrefs.

line Não

Requerido quando state=present . Parâmetro line usado para inserir / substituir linhas no arquivo. Se backrefs estiver definido, poderá conter backreferences que serão acrescentas aos grupos das expressões regulares, isto se o regexp corresponder.

mode Não

Permissão em que arquivo ou diretório deve ter. Caso você esteja acostumado com chmod, lembre-se que as opção são octais. Você deve adicionar um zero à esquerda para que analisar YAML do Ansible saiba que é um número octal. Exemplo: (0644 ou 01777) ou cite [ 'blablabla' ] Exemplo: '644' ou '1777' para que o Ansible receba uma string e possa fazer sua própria conversão em número. Caso não seja definido corretamente, os números serão calculados de forma inesperada.
A partir da versão 1.8, o modo pode ser especificado de forma simbólica. Exemplo: (u+rwxou u=rw,g=r,o=r). A partir da versão 2.3 o modo também preserva a sequencia de string especial. Isso significa que ele receberá as mesmas permissões do arquivo de origem.

others Não

Todos os argumentos aceitos pelo módulo file também funcionam aqui.

owner Não

Nome do usuário dono do arquivo ou diretório.

path Sim

O arquivo que será alterado.
Antes de 2.3 esta opção só era utilizável como dest, destfile e name.


alias: dest, destfile, name
regexp

(Add em 1.7)

Não

A expressão regular para pesquisar em todas as linhas do arquivo. Para state=present, a expressão se encontrado, será substituída. Somente a última linha encontrada será substituída. Para state=abstent, a expressão deve incluir itens a serem removidos. Ansible usa expressões regulares do Python. Veja mais em: http://docs.python.org/2/library/re.html

selevel Não s0

Level é parte do SELinux file context. Este é o atributo MLS / MCS, às vezes conhecido como o range. A característica _default funciona como seuser

serole Não

Role é parte do SELinux file context, _default é uma função que funciona com seuser.

setype Não

Type é parte do SELinux file context, _default é uma função que funciona com seuser.

seuser Não

User é parte do SELinux file context. Será o padrão para a política do sistema. Se aplicável, será definido como _default. Se disponível, ele usará o user como parte da política.

User part of SELinux file context. Will default to system policy, if applicable. If set to _default, it will use the user portion of the policy if available.

state Não present
  • present
  • absent

Se a linha existe ou não

unsafe_writes

(Add em 2.2)
Não

Por padrão, este modulo utiliza operações atômicas (atomic operations) para evitar corrupção de dados ou leituras inconsistentes, as vezes os sistemas são configurados ou apenas quebrados para prevenir que isto aconteça. 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. Essa opção permite que o Ansible retorne a métodos não seguros de atualização de arquivos quando operações atômicas falham (no entanto, isso não força o Ansible a executar gravações inseguras). IMPORTANTE! As gravações inseguras estão sujeitas a condições de execução e podem levar à corrupção de dados.

validate Não None

O comando validate é usado antes da copia. O caminho para o arquivo a ser validado é passado via '%s', que deve estar presente como no exemplo abaixo. O comando é passado com segurança para que os recursos do shell, como expansão e pipes, não funcionem.

A partir do Ansible 2.3, a opção de dest foi alterada para path como padrão, mas dest ainda funciona.

# Antes da versão 2.3, opção 'dest', 'destfile' ou 'name' são usadas no lugar de 'path'
#Alterando a linha que contenha SELINUX= para SELINUX=enforcing
- lineinfile:
    path: /etc/selinux/config
    regexp: '^SELINUX='
    line: 'SELINUX=enforcing'
#Remove linha que contenha %wheel
- lineinfile:
    path: /etc/sudoers
    state: absent
    regexp: '^%wheel'
#Procura por 127.0.0.1 e altera para 127.0.0.1 localhost, também seta permissões do arquivo: Dono: root, Grupo: root e seta permissão 644
- lineinfile:
    path: /etc/hosts
    regexp: '^127\.0\.0\.1'
    line: '127.0.0.1 localhost'
    owner: root
    group: root
    mode: 0644
 
- lineinfile:
    path: /etc/httpd/conf/httpd.conf
    regexp: '^Listen '
    insertafter: '^#Listen '
    line: 'Listen 8080'
 
- lineinfile:
    path: /etc/services
    regexp: '^# port for http'
    insertbefore: '^www.*80/tcp'
    line: '# port for http by default'
 
# Adicione uma linha a um arquivo sem utilização de expressão regular.
- lineinfile:
    path: /tmp/testfile
    line: '192.168.1.99 foo.lab.net foo'
 
# O YAML acusa erro quando usamos dois pontos [ : ] sem quotação, por isso devemos quotar [ '' ] código quando usarmos este caractere.
- lineinfile:
    path: /etc/sudoers
    state: present
    regexp: '^%wheel\s'
    line: '%wheel ALL=(ALL) NOPASSWD: ALL'
 
# Yaml requer escape backslashes em aspas duplas, mas não em aspas simples
- lineinfile:
    path: /opt/jboss-as/bin/standalone.conf
    regexp: '^(.*)Xms(\\d+)m(.*)$'
    line: '\1Xms${xms}m\3'
    backrefs: yes
 
# Validando o arquivo sudoers antes de salvar
- lineinfile:
    path: /etc/sudoers
    state: present
    regexp: '^%ADMIN ALL='
    line: '%ADMIN ALL=(ALL) NOPASSWD: ALL'
    validate: 'visudo -cf %s'

    
A partir do Ansible 2.3, a opção de dest foi alterada para path como padrão, mas dest ainda funciona.