1. Grande importância da Ansible para a operação e manutenção da empresa
Ansible é uma ferramenta de manutenção e operação automatizada emergente, desenvolvida com base em Python e integra as vantagens de muitas ferramentas de operação e manutenção (fantoche, cfengine, chef, func, fabric) para obter a configuração do sistema em lote, Implantação de programa em lote, comandos de execução em lote e outras funções.
Recursos Ansible
1 无终端只需在主控节点部署ansible环境,是基于ssh实现管理的
2 模块化管理工具,有大量常规运维操作模块,可实现日常绝大部分操作
3 支持API及自定义模块,可通过Python轻松扩展
4 通过Playbooks来定制强大的配置、状态管理1
2.Ansible 的 安装
epel 源
[fedra]
name =
fedra baseurl = http: //ftp.sjtu.edu.cn/fedora/epel/8/Tudo/x86_64
gpgcheck = 0
dnf install ansible -y
ansible --version
Informações básicas de
ansible : /etc/ansible/ansible.conf ## Arquivo de configuração global, o padrão raramente é modificado
/ etc / ansible / hosts ## Arquivo de lista de inventário de host global
#### 3. Construindo uma lista de Anisble ####
List é a lista de hosts de controle ansible
/ etc / ansible / hosts ## Arquivo de manifesto global
# 1. Grave o nome do host gerenciado ou ip diretamente, um por linha
node1.westos.com
node2.westos.com
172.25.254.240
Se você escrever o nome de domínio na lista, será necessário resolvê-lo em vim / etc / hosts
2. Defina a
exibição de lista do grupo [nome do grupo] do host gerenciado :
Nome do grupo na lista ansible [-i arquivo de lista] --list-hosts
ansible desagrupado --list-hosts
ansible todos --list-hosts
lista de nível único
[list1]
node1.westos.com
node2.westos.com
[
lista2 ] node2.westos.com
[lista3]
172,25,254,240
Lista aninhada
[westos: children]
list1
list3
# 测试 :
[root @ ansible ansible] # ansible list1 --list-hosts
hosts (1):
172.25.254.100
[root @ ansible ansible] # ansible list2 --list-hosts
hosts (1):
172.25.254.200
[root @ ansible ansible] # ansible list3 --list-hosts
hosts (1):
172.25.254.240
[root @ ansible ansible] # ansible westos --list-hosts
hosts (3):
172.25.254.100
172.25.254.200
172.25.254.240
3. Operação de intervalo de especificação de host
Ao especificar o nome do host ou intervalo de IP, a lista de hosts Ansible pode ser simplificada.
Sintaxe:
[start: end]
[westostest]
172.25.254. [100: 108]
4. Especificar outros arquivos de inventário
vim inventário
172.25.254.240
[westostest]
172.25.254.100
172.25.254.200
测试
ansible all -i inventário --list-hosts
ansible westostest -i inventário --list-hosts
ansible ungrouped -i inventário --list-hosts
O comando ansible especifica a expressão regular da lista
-
##所有 ##172.25.254.* ##westos*
: ## Logic ou
## westos1: linux
## 172.25.254.100: 172.25.254.200
: & ## Logic e
## westos1: & linux
## O host está na lista westos1 e também na lista linux
:! ## Logic non
## westos1:! Linux
## não está em linux em westos1
~ ## Comece com palavras-chave
~ (str1 | str2) ## Comece com condição 1 ou condição 2
4. Explicação detalhada dos parâmetros do arquivo de configuração Ansible
Nome do grupo na lista ansible -m módulo -u remote_user
# 1. Classificação e prioridade dos
arquivos de configuração /etc/ansible/ansible.cfg # Arquivo de configuração básico, nenhum outro arquivo de configuração pode ser encontrado, este arquivo entra em vigor
~ / .ansible.cfg #Não há ansible.cfg no diretório atual do usuário, este arquivo entra em vigor
./ansible.cfg #A prioridade mais alta
2. Parâmetros de configuração comumente usados
[padrão] ## Basic information setting
inventory = ## Especifique o caminho do inventário Especifique vários caminhos separados por vírgulas,
remote_user = ## Nome de usuário conectado no host gerenciado, o usuário atual não foi especificado
ask_pass = ## Se deve solicitar a senha SSH, se o login de chave pública estiver definido como falso
library = ## Biblioteca de diretório de armazenamento de arquivos
local_tmp = ## Diretório de execução de comando temporário local
remote_tmp = ## Host remoto diretório de armazenamento de arquivo de comando py temporário
forks = ## Número simultâneo padrão
host_key_checking = ## Se deve inserir sim para estabelecer host_key ao conectar-se ao host gerenciado pela primeira vez
sudo_user = ## usuário sudo padrão
ask_sudo_pass = ## Se a senha sudo é solicitada toda vez que o comando ansible é executado no host controlado
module_name = ## O módulo padrão, que usa o comando por padrão, pode ser modificado para shell
log_path = ## Caminho do arquivo de log
[privilege_escalation] ## Configurações de informações de identidade
tornam-se = ## Se deve alternar automaticamente os usuários após a conexão
tornar-se_method = ## Defina o método de alternar usuários, geralmente com sudo
torne-se_user = ## O usuário alternou para no host gerenciado, geralmente root
Torne-se_ask_pass ## Você precisa solicitar uma senha para Torne-se_metodo, o padrão é falso
5. Crie um ambiente operacional Ansible em nível de usuário.
Três usuários de máquina virtual estão autorizados a
visualizar
em cerca de 100 linhas.
Adicione autorização e
mude para outros usuários.
Ordem do arquivo de configuração: Prioridade selecione o arquivo de configuração do diretório inicial e da lista de inventário do usuário.
Arquivo de configuração:
lista de inventário:
Defina a autenticação de chave e carregue a chave pública:
Teste:
ansible all --list
ansible all -m ping
bem-sucedido