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:
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:
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:
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)
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:
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