Ferramentas automatizadas de operação e manutenção - Manual de introdução ao Ansible (2)

3. Implemente o manual #########

O objetivo deste capítulo: escrever um manual básico ansible

3.1 Escreva e execute o playbook

3.1.1 Exibir comandos temporários de um usuário especificado

'O formato yaml geralmente possui a extensão yml, e o yaml não possui requisitos estritos de indentação, mas existem dois princípios básicos'
'1. Os elementos de dados no mesmo nível na mesma hierarquia devem ter a mesma indentação'
'2. Se o item pertencer a um filho de outro item, o recuo deverá ser maior que o item pai '

 ansible -m user -a "name=student uid=1000state=present" servera.lab.example.com

Insira a descrição da imagem aqui
Reescrito como manual

[root@workstation ~]# cat user.yml

Insira a descrição da imagem aqui

---                                     开头三个破折号,文档的开始标记
- name: Configure User            可写可不写,但是建议使用

...                      结尾三个省略号,结束标记(通常省略)

A reprodução em si é um conjunto de pares de chave e valor. As chaves na mesma reprodução devem usar o mesmo recuo,
hosts é uma chave e o conteúdo a seguir é o valor. Esta é uma coleção aninhada.

execução do manual:
Insira a descrição da imagem aqui

3.1.2 Instalar o apache

Crie um novo diretório para facilitar a operação

mkdir /demo
vim webserver.yml

Insira a descrição da imagem aquiInsira a descrição da imagem aqui
Insira a descrição da imagem aqui
Pode-se ver que o serviço httpd foi instalado.

3.1.3 Verifique se o serviço httpd foi iniciado

vim service.yml

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Efeito:
Insira a descrição da imagem aqui

3.1.4 Melhorar o nível de detalhe da saída

A saída padrão do ansible-playbook não fornece informações detalhadas sobre a execução da tarefa. O parâmetro -v fornece quatro níveis:

  1. -v #Exibir resultados da tarefa
  2. -vv #Exibir resultados de tarefas e configuração de tarefas
  3. -vvv # contém informações sobre conexões com hosts gerenciados
  4. -vvvv #Adicione opções adicionais de verbosidade relacionadas à conexão de plug-ins (incluindo usuários que executam scripts e scripts executados em hosts gerenciados)

# Melhor para executar a verificação de sintaxe antes de executar o manual de instruções
Insira a descrição da imagem aqui
# Sem erro de sintaxe
Altere o manual de instruções:
Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Se houver um erro gramatical, ele solicitará o local errado.

3.1.5 Execute o funcionamento a seco, apenas visualize o resultado

Primeiro, removemos o serviço httpd no host 71:
Insira a descrição da imagem aqui
depois executamos o playbook; o
ansible-playbook -C webserver.yml
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
ainda não está instalado. Isso pode ser visto.
"A execução a seco relatará o que acontecerá quando este manual for executado, mas não alterará o host de destino"

3.1.6 Instale, configure a página de lançamento padrão e inicie o apache

 vim site.yml

Insira a descrição da imagem aqui

Gramática de detecção

ansible-playbook --syntax-check site.yml

Insira a descrição da imagem aqui
Não tem problema
# Crie o arquivo de configuração e a lista
Insira a descrição da imagem aqui
# Crie a página de publicação padrão
cat files / index.html para
Insira a descrição da imagem aqui
executar o playbook:
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
service installation and enable.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
A página de publicação foi alterada com sucesso.

# Teste
onda obter conteúdo do navegador remoto.
Insira a descrição da imagem aqui

3.2 Implementar jogo múltiplo

Predefinição:
Insira a descrição da imagem aqui
ansible-doc -l
Insira a descrição da imagem aqui
#Lista todos os módulos ansible-doc yum #Lista de uso e exemplos de
Insira a descrição da imagem aqui
yum ansible-doc -s yum #Utilize o terminal para gerar o uso de cada parâmetro no módulo yum
Insira a descrição da imagem aqui

3.3 Alterações na sintaxe do yaml do PLAYBOOK

  1. Comentários de yaml
    Insira a descrição da imagem aqui
  2. yaml string
    insira diretamente
    esta é uma string
    aspas simples
    'esta é uma string'
    aspas múltiplas
    "this is a string"

# Exercício
Altere a página do host remoto sem fechar o firewall e visite:

Insira a descrição da imagem aqui

 vim webserver.yml
---
- name: Enable internet service
  hosts: web
  become: yes
  tasks:
          - name: apache and firewalld installed   # 检测firewalld和httpd是否为最新版  
            yum:
                    name:
                            - httpd
                            - firewalld
                    state: latest          

          - name: Configure index.html    # 配置默认发布页面
            copy:
                    content: "welcome to westos!\n"
                    dest: /var/www/html/index.html
                    
          - name: firewalld enabled and runing    # 检测firewalld是否开机自启并启用
            service:
                    name: firewalld
                    enabled: true
                    state: started
                    
          - name: firewald primits http           # 检测firewalld是否添加http服务
            firewalld:
                    service: http
                    permanent: true
                    state: enabled
                    immediate: yes
                    
          - name: httpd enabled and runing            # 检测httpd服务是否自启并运行
            service:
                    name: httpd
                    enabled: true
                    state: started
                    
- name: test webserver					本地主机测试访问
  hosts: localhost
  become: no
  tasks:
          - name: connect web server
            uri:
                    url: http://rhel71.com
                    return_content: yes
                    status_code: 200

# Gramática de detecção
Insira a descrição da imagem aqui
# executar

ansible-playbook -v webserver.yml

Insira a descrição da imagem aqui
Você pode ver o conteúdo bem-vindo ao westos
e o código de status 200 é retornado

3.4 Variáveis ​​e fatos da administração

Use algumas variáveis ​​no manual em vez de variáveis ​​para simplificar a escrita do manual

3.4.1 Variáveis ​​de gerenciamento

Introdução às variáveis ​​ansiáveis

As variáveis ​​podem conter os seguintes valores:
usuários a serem criados,
pacotes a serem instalados,
serviços a serem reiniciados,
arquivos a serem excluídos, documentos a
serem recuperados da Internet

Variável nomeada

Os nomes de variáveis ​​devem começar com uma letra e podem conter apenas letras, números e sublinhados Servidor web
incorreto_servidor da
web
westos.file
remote_file 1arquivo de arquivo1

Definir variáveis

Três níveis de escopo Escopo
global: Variáveis ​​definidas na linha de comando ou na configuração ansible
Escopo de reprodução: Variáveis ​​definidas no play e estruturas relacionadas
Escopo do host: Tarefas coletadas ou registradas pelo inventário, fatos, definidos em grupos de hosts e hosts individuais Variáveis
'Se variáveis com o mesmo nome são definidas em vários níveis, a variável com o nível mais alto é preferida e o escopo estreito tem precedência sobre o escopo amplo'

3.4.2 Variáveis ​​no manual

Definir variáveis ​​no manual

1. Maneira comum: no bloco vars no início do manual:
Insira a descrição da imagem aqui
2. Defina a variável do manual no arquivo externo
Insira a descrição da imagem aqui

cat user.yml

Insira a descrição da imagem aqui

Use variáveis ​​no playbook

Coloque o nome da variável entre colchetes.
Insira a descrição da imagem aqui
'Nota: Quando a variável é usada como o primeiro elemento a iniciar um valor, você deve usar aspas.'

Publicado 50 artigos originais · Gostei 18 · Visitas 3780

Acho que você gosta

Origin blog.csdn.net/thermal_life/article/details/105308669
Recomendado
Clasificación