Ad-hoc, playbook, variáveis, criptografia em Ansible

1.Ansible realiza a gestão:

Ad-Hoc -------------------- Use o comando ansible para completar diretamente o gerenciamento, usado principalmente para cenários de uso de comandos temporários
------------ ------- O script Ansible, usado principalmente em cenários de projetos de grande escala, requer um planejamento preliminar

2. Execute um comando ad hoc (ad-hoc):

2-1: Por meio da linha de comando, comandos temporários podem ser usados ​​para testar e alterar rapidamente sem escrever um manual.

Processo de execução do comando Ansible:
1. Carregue seu próprio arquivo de configuração
2. Carregue o arquivo do módulo correspondente
3. Gere o arquivo py temporário correspondente do módulo por meio do ansible e transfira o arquivo para o usuário de execução correspondente HOME / .ansible / temp do servidor remoto /tmp/ansible-tmp-number/xxx.py file
4. Execute file + x
5. Execute e retorne o resultado
6. Exclua o arquivo temporário e saia

2-2: Módulos comuns usados ​​por comandos temporários:

文件模块:
-copy	        将本地文件复制到受管主机
-file	        设置文件的权限和其他属性
-lineinfile	    确保特定行是否在文件中
-synchronize	使用rsync同步内容

系统模块:
-firewalld	   使用firewalld管理任意端口和服务
用firewalld	   管理任意端口和服务
-reboot	       重启
-service	   管理服务
-user	       添加、删除和管理用户账户

Net Tools模块:
-get_url	通过http、https、或者ftp下载文件
nmcli	    管理网络
-uri	    与web服务交互

2-3 Parâmetros comumente usados ​​de Ad-hoc:

Insira a descrição da imagem aqui
3. Manual no Ansible:

3-1 Playbook: É uma lista de tarefas repetíveis escritas na linguagem de marcação YAML.

O formato 3-2.yaml geralmente usa .yml como a extensão
ansible-playbook xxx.yml para executar o playbook (requer inventário e ansible.cfg no ambiente) Nota: Deve haver entre tarefas e tarefas no playbook, e entre jogar e jogar -

3-3. 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: -v (exibir resultados da tarefa) -vv (exibir resultados da tarefa e configuração da tarefa) -vvv (contém informações de conexão com o host gerenciado) -vvvv (adicionar detalhes adicionais relacionados ao plug-in de conexão Opção de grau) (incluindo o usuário usado para executar o script no host gerenciado e o script executado)

3-4. É melhor realizar a verificação da sintaxe antes de executar o playbool.
Ansible-playbook --syntax-check webserver.yml
tem um erro de sintaxe e o local do erro ERROR! S

3-5.yaml não tem requisitos estritos para recuo, mas existem dois princípios básicos:
1). Elementos de dados no mesmo nível na mesma hierarquia devem ter o mesmo recuo (o jogo em si é uma coleção de pares de valores-chave, As chaves na mesma peça devem usar o mesmo recuo); após a reunião: deve haver um "" espaço
2). Se o item for filho de outro item, o recuo deve ser maior do que o item pai. O formato é o seguinte:
Insira a descrição da imagem aqui

3-6: Comandos de execução comuns no manual:

ansible-playbook xxx.yml ...     ansible执行playbook
--check|-C	      ##检测
--syntax-check	  ##检测语法
--list-hosts	  ##列出hosts
--list-tags  	  ##列出tag
--list-tasks	  ##列出task
--limit		      ##指定执行主机
-v -vv		      ##显示过程

4. Edite o formato de indentação do yaml no vimrc:

Insira a descrição da imagem aqui

5. Variáveis ​​em ansible:
5-1: Função:
substitua alguns valores no manual por variáveis, simplificando assim a redação do manual

<1. As variáveis ​​podem ser reutilizadas pelo playbook
<2 . As variáveis ​​podem ser definidas para hosts e grupos de hosts na lista
<3. As variáveis podem ser definidas usando fatos e arquivos externos ou na linha de comando
<4. Por que a palavra-chave de registro é usada? Capture a saída do comando
<5. Uso da
abóbada ansible <6. Um fato ansible é uma variável detectada automaticamente do host gerenciado

5-2: a nomenclatura de variáveis
só pode conter números, sublinhados e letras
só podem começar com sublinhados ou letras

5-3: Nível de variável
Global:
Paly definido a partir da linha de comando ou arquivo de configuração: definido em jogo e estruturas relacionadas
Host: Tarefas coletadas ou registradas pela lista, fatos

Configuração de prioridade variável: o
intervalo estreito tem precedência sobre o intervalo amplo

5-4: Formas comuns de usar variáveis:
5-4-1: Definir variáveis ​​no bloco vars no início do manual (forma comum)
Insira a descrição da imagem aqui

5-4-2: Adicione diretamente o parâmetro -e para definir a variável na linha de comando ad-hoc:

teste ansible -e “nome de usuário = westos”;

5-4-3: Crie um arquivo de variável no mesmo diretório de nível de ansible.cfg:

Insira a descrição da imagem aqui

Preste atenção ao uso de aspas duplas ao chamar variáveis:
como: "{{username}}"

O uso do template JINJA2:
Introdução:
Jinja2 é o próximo mecanismo de template amplamente usado para Python.
Sua ideia de design vem do mecanismo de template do Django,
e expandiu sua sintaxe e uma série de funções poderosas.
O mais notável é a adição da execução sandbox e escape automático opcional

Use o exemplo:

---
- hosts: all
  tasks:
  - name: system info
    template:
      src: hostinfo.j2
      dest: /tmp/hostinfo

Nota: Importe outros manuais ou tarefas:

  • import_playbook: task.yml

6. Fatos de gestão em Ansible:

Colete informações de fatos:
reúnem-se; você pode usar reúnem-se: não | falso para fechar a coleção;
use nomes de variáveis ​​de sistema, que são comuns da seguinte maneira:

hostname: {
    
    {
    
     ansible_facts['hostname'] }}
ip: {
    
    {
    
     ansible_facts["eth0"]["ipv4"]["address"] }}
DNS: {
    
    {
    
     ansible_facts['dns']['nameservers'][-1] }}
vda1: {
    
    {
    
     ansible_facts['devices']['vda']['partitions']['vda1']['size'] }}
kernel: {
    
    {
    
     ansible_facts['kernel'] }}

Ver informações factuais: teste ansible (lista) -m configuração | menos

7. Controle de criptografia do Ansible:

创建建立文件
1.
ansible-vault create westos

2.
vim westos-vault
lee

ansible-vault create --vault-password-file=westos-valut westos

#加密现有文件
ansible-vault encrypt test


#查看加密文件
ansible-vault view westos
ansible-vault view --vault-password-file=westos-valut westos

#编辑加密文件

ansible-vault edit westos1
ansible-vault edit --vault-password-file=westos-valut westos

##解密文件
ansible-vault decrypt westos 			      ##文件永久解密
ansible-vault decrypt westos --output=linux	##文件解密保存为linux

##更改密码
ansible-vault rekey westos1
ansible-vault rekey westos1 --new-vault-password-file=key1


#playbook#
ansible-playbook apache_install.yml  --ask-vault-pass

Acho que você gosta

Origin blog.csdn.net/lb1331/article/details/111998681
Recomendado
Clasificación