lê um arquivo e executa cada linha como comando usando ansible

4

Eu quero escrever um manual para o seguinte cenário: lê um arquivo de texto que possui comandos linux escritos, executa-os um por um, aborta se algum comando não for executado, e se eu corrigir o comando e executar o playbook novamente, ele deve ser executado a partir de onde ele foi abortado (em vez de ser executado do começo)

arquivo de amostra: sample.txt

echo "hello world"  
df -h  
free -m  
mkdir /tmp/'hostname'_bkp  
touch /tmp/'hostname'_bkp/file{1..5}  
mvn -version  
echo "directory and files created"  
echo "Bye.!"  

Então, por exemplo, se mvn -version falhar em executar, então ansible deverá ser anulado.

Como pode conseguir o cenário através de ansible?

    
por hruday 28.02.2017 / 19:04

1 resposta

2

Abaixo está um exemplo de manual, que executa várias tarefas simples.

---
 - hosts: localhost
   tasks:
    - name: say hi
      shell: echo "Hello, World!"

    - name: do df -h
      shell: df -h
      register: space

    - name: show the output of df -h
      debug: var=space

    - name: do free -m
      shell: free -m
      register: memory
      ignore_errors: yes

    - name: show memory stats
      debug: var=memory

    - name: create /tmp/"hostname"_bkp
      file: dest=/tmp/{{ ansible_nodename }}_bkp state=directory

    - name: create files
      file: dest=/tmp/{{ ansible_nodename }}_bkp/file{{ item }} state=touch
      with_items:
       - 1
       - 2
       - 3
       - 4
       - 5

Cria um diretório e arquivos no local desejado. Você também pode definir a propriedade, as permissões, que se ajustam melhor às suas necessidades.

ansible_nodename é um fato ansiável (uma variável), que é coletado no início de uma peça.

Você pode ver mais informações sobre o módulo de arquivo ansible aqui . Por favor, dê uma olhada nos outros módulos ansible - eles são muitos, fáceis de aprender e poderosos.

    
por 01.03.2017 / 13:41

Tags