2 Uso do manual

Referência https://blog.51cto.com/13630803/2154192

1. Introdução de funções comuns

Tarefas: tarefas, a lista de ações definidas pelo modelo de
variáveis: variáveis
Modelos: modelos que usam o modelo de arquivo sintaxe
manipuladores: processador, quando estão reunidas certas condições, as operações de gatilho realizada
Funções: Funções
meta: Este diretório deve conter um principal. O arquivo yml é usado para definir as configurações especiais dessa função e suas dependências.

1.1 O exemplo mais simples:

[yx@localhost playbook]$ cat a.ymal 
---
-  hosts: 192.168.6.220
   remote_user: yx
   tasks:
   - name: create file
     command: 'touch /home/yx/hnf.txt'
​```
 ```bash
 ansible-playbook a.yml --syntax-check    #检查yaml文件的语法是否正确

ansible-playbook a.ymal # 执行
#有警告
 [WARNING]: Consider using the file module with state=touch rather than running 'touch'.  If you need to use command because file is
insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
#解决办法
sudo vim /etc/ansible/ansible.cfg 
command_warnings = False  #这行的注释去掉即可

O que outras pessoas estão dizendo

1.2 ciclo do manual

Percorrer os diretórios

---
- hosts: 192.168.10.227
  user: root
  tasks:
   - name: change mod for file
     file: path=/tmp/{{item}} state=directory
     with_items:
       - a
       - b
       - c             

Alterne entre permissões de arquivo

Primeiro crie três arquivos

cat file.yml
- hosts: testhost
  user: root
  tasks:
    - name: touch files
      shell: touch /tmp/{1.txt,2.txt,3,txt}

Em seguida, altere as permissões do arquivo

- hosts: testhost
  user: root
  tasks:
   - name: change mod for file
     file: path=/tmp/{{item}} mode=600
     with_items:
       - 1.txt
       - 2.txt
       - 3.txt

1.3 Julgamento condicional

- hosts: testhosts
  user: root
  gather_facts: True
  tasks:
    - name: use when
      shell: touch /tmp/when.txt
      when: facter_ipaddress == "172.7.15.106"

Por fim, execute ansible-playbook a.yml

O que esse arquivo significa é: quando facter_ipaddress == "172.7.15.106", toque em /tmp/when.txt nesta máquina

1.4 Introdução aos handers

O uso de manipuladores: geralmente, ao modificar um determinado arquivo de configuração, os manipuladores são usados ​​para executar uma determinada tarefa.
Exemplos:

- name: handlers test
  hosts: web10(或者写ip)
  user: root
  tasks:
    - name: copy file
      copy: src=/etc/passwd dest=/tmp/aaa.txt
      notify: test handlers
  handlers:
    - name: test handlers
      shell: echo "111111" >> /tmp/aaa.txt

Observe que somente depois que o módulo de cópia for realmente executado, as seguintes operações relacionadas ao manipulador serão chamadas. Ou seja, se o cpoy não vê que não é executado, não executará os comandos relacionados ao shell nos manipuladores. É mais adequado para reiniciar o serviço após a alteração do arquivo de configuração

Exemplo 2 Altere o arquivo de configuração e reinicie o serviço

---
- hosts: 192.168.6.220
  remote_user: root
  tasks:
    - lineinfile:
        path: /home/yx/server/nginx/config/vhost/vhost.conf
        regexp: 'listen(.*)81(.*)'
        line: 'listen 80;'
      notify:
        - reload nginx
  handlers:
   - name: reload nginx
     service:
        name: sudo /home/yx/server/nginx/sbin/nginx -s reload

  post_tasks:
   # 检查网页内容。
   - name: review http state
     command: "curl -s http://192.168.6.220:81"
     register: web_context
   
          
#lineinfile更改配置文件

Acho que você gosta

Origin www.cnblogs.com/huningfei/p/12739448.html
Recomendado
Clasificación