Introdução automatizada às ferramentas de operação e manutenção - Ansible (1)

Introdução Ansible

1. O que é ansible

ansible é uma plataforma de automação de código aberto, uma ferramenta de gerenciamento de configuração, uma ferramenta automatizada de operação e manutenção

2. As vantagens do ansible

  • Suporte multiplataforma
  • Automação legível por humanos: o ansible fornece suporte sem agente para dispositivos Linux, Windows, unix e de rede, adequados para ambientes físicos, virtuais, em nuvem e contêineres
  • Aplicação de descrição perfeita: manual
  • Gerencie facilmente o controle de versão: o playbook é um texto simples e pode ser considerado como código-fonte
  • Lista dinâmica de suporte
  • A orquestração pode ser facilmente integrada a outros sistemas: fantoche, jenkins
  • Infraestrutura como código
  • Reduzir erro humano

Tarefas, play e playbook são projetados para serem idempotentes; portanto, quando o playbook for executado, se o host de destino estiver no estado correto, nenhuma alteração será feita.

3. Instale o ansible

1. Instale o ansible na estação de trabalho e atue como um nó de controle

yum install -y ansible

2. Exibir informações sobre a versão
ansible ansible --version
Insira a descrição da imagem aqui
3. Use o módulo de instalação para verificar o python
ansible -m setup localhost | grep ansible_python_version
“ansible_python_version”: “3.6.8”,

Implantar ansible

Para implantar o ansible, você deve executar a autenticação sem senha no host de gerenciamento e no host gerenciado antes de poder implementar a implantação automática do ansible.

1. Crie uma lista ansible (explique)

O que é uma lista?
A lista ansible define um lote de hosts que o ansible gerenciará

  1. Lista estática

Um para cada linha, preencha o nome do host ou ip, como:
www.westos.org
172.25.254.250

Você também pode definir grupos de hosts:
[servidores da web]
server1.westos.org
server2.westos.org
172.25.0.1

[dbservers]
node1.westos.org
node1.westos.org

'Observação: um host pode existir em vários grupos de hosts'

  1. A definição da
    lista de hosts ansible do grupo aninhado pode conter vários grupos de hosts, como:

[servidores da web]
server1.westos.org
server2.westos.org
172.25.0.1

[dbservers]
node1.westos.org
node1.westos.org

[servidores: filhos ]
servidores web
dbservers

  1. Simplifique as especificações do host por escopo

Pode especificar o nome do host ou o intervalo de IP ou o número e o intervalo de letras

Regras gramaticais: [START: END]

1.
172.25. [0: 4]. [0: 254] #match 172.25.0.0/24, 172.25.1.0/24…
2.
server [01:10] .example.com #match server01.example.com para server10 .example.com todos os hosts
3.
[a: c] .example.com #match a.example.com a c.example.com

  1. Lista de verificação
    [root @ workstation ~] # ansible workstation.lab.example.com --list-hosts
    Insira a descrição da imagem aqui
    'Não há hosts gerenciados no host atual'

  2. Local padrão do inventário: / etc / ansible / hosts # Geralmente não usado, mas crie você mesmo um novo arquivo de inventário.Depois da
    Insira a descrição da imagem aqui
    alteração, o host gerenciado é exibido.
    Insira a descrição da imagem aqui
    Você também pode exibir o interior do grupo:
    Insira a descrição da imagem aqui
    você pode exibir os que não estão no grupo:
    Insira a descrição da imagem aqui

  3. Lista dinâmica-> pode ser obtida a partir de scripts na comunidade de código aberto

  4. Lista personalizada
    mkdir deploy-inventário #Criar diretório de Insira a descrição da imagem aqui
    inventário vim inventário Criar arquivo de inventário

Listar hosts

 ansible all -i inventory --list-hosts

Insira a descrição da imagem aqui
-i especifica o arquivo

ansible ungrouped -i inventory --list-hosts     列出不在组中的主机

Insira a descrição da imagem aqui

 ansible www -i inventory --list-hosts	       列出www组中的主机

Insira a descrição da imagem aqui

 ansible westos -i inventory --list-hosts	       westos组包含www组和bbs组

É
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
recomendável usar várias máquinas virtuais para alterar o conteúdo do arquivo , para que o efeito possa ser melhor visualizado.

2. Gerenciar arquivos de configuração ansible

1. Configure ansible

Arquivo de configuração:

/etc/ansible/ansible.cfg	 

Arquivo de configuração básica, se nenhum outro arquivo de configuração for encontrado, use-o com a menor prioridade

~/.ansible.cfg		

Se essa configuração existir e não houver ansible.cfg no diretório de trabalho atual, esse arquivo substituirá /etc/ansible/ansible.cfg

./ansible.cfg		

Se houver ansible.cfg no diretório em que o comando ansible é executado, use-o em vez dos dois acima (recomendado, os dois não são comumente usados).

Exibir o arquivo de configuração usado

Insira a descrição da imagem aqui
Quando o arquivo ansible.cfg existir no diretório atual:
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
o arquivo de configuração do diretório atual será usado.

Gerenciar configurações nos arquivos de configuração:

[padrão] Defina o valor padrão da operação ansible em parte
Insira a descrição da imagem aqui
. Ele não precisa ser alterado. É comum.
[privilege_escalation] Configure como o ansible executa a escalação de privilégios nos hosts gerenciados
Insira a descrição da imagem aqui
Exemplo: Escreva seu próprio arquivo de configuração.
vim ansible.cfg

[defaults]
inventory = ./inventory
remote_user = student	    指定登录受管主机的用户,如不指定则使用当前用户名称
ask_pass = false	      是否提示输入ssh密码,做了免密就可以设置为false,否则需为true

[privilege_escalation]
become = true		      连接到受管主机上是否进行身份切换
become_method = sudo    	  切换方式,默认为sudo
become_user = root      	切换到的用户
become_ask_pass = false     是否需要为become_method提示输入密码,默认为false

Insira a descrição da imagem aqui

Use o sudo para descentralização e use o superusuário para editar arquivos:

 vim /etc/sudoers.d/thermal

Insira a descrição da imagem aqui

3. Execute o comando temporário

Use comandos temporários para testar e alterar rapidamente sem escrever um manual

1. Formato:

ansible host-pattern -m module [-a 'module arguments'] [-i inventory]
-m 后面接模块
-a  后面接参数
-i  指定文件

Faça uma boa análise local:

2. Verifique se você pode executar o módulo python no host gerenciado.
Insira a descrição da imagem aqui
3. Use comandos temporários para executar tarefas através do módulo
[root @ workstation ~] # ansible-doc -l # Listar todos os módulos
Insira a descrição da imagem aqui
Existem muitos módulos, de a-z
[ root @ workstation ~] # ansible-doc ping #Exibir o documento de ajuda do módulo ping #
Insira a descrição da imagem aqui
ansible module Módulo de
arquivo: -copy: copia o arquivo local para o host gerenciado
     -file: define permissões de arquivo e outros atributos
     -lineinfile: verifique se a linha específica
     -Sincronize no arquivo : use rsync para sincronizar o conteúdo

Módulos de sistema: -firewalld: use firewalld para gerenciar qualquer porta e serviço
     -reboot: restart
     -service: manage service
      -user: adicione, exclua e gerencie contas de usuário

Net Tools module-get_url: baixe arquivos via http, https ou ftp-
        nmcli: gerencie uri de rede:
         interaja com serviços da web

4. Exemplo: use o módulo do usuário para garantir que o usuário térmico exista no rhel71.com e o uid seja 1000

 ansible -m user -a 'name=thermal uid=1000 state=present' rhel71.com

Insira a descrição da imagem aqui
Execute o comando no host gerenciado:

ansible webservers -m command -a /usr/bin/hostname

Insira a descrição da imagem aqui
serverb.lab.example.com | CHANGED | rc = 0 >> # Relatório de status, mostrando o nome do host e os resultados da operação
serverb.lab.example.com # Saída de comando

ansible webservers -m command -a /usr/bin/hostname -o	   #加上-o参数,单行显示

Insira a descrição da imagem aqui

'Nota: O módulo de comando permite que comandos remotos sejam executados, mas esses comandos não são processados ​​pelo shell; portanto, as variáveis ​​de ambiente do shell não podem ser acessadas; portanto, o redirecionamento, a transferência e outras operações não podem ser executadas e podem ser executadas com o módulo shell. "

A diferença entre usar shell e comando:

 ansible localhost -m command -a set

Insira a descrição da imagem aqui

 ansible localhost -m shell -a set

Insira a descrição da imagem aqui
Crie o diretório / root / deploy-adhoc e escreva um arquivo de configuração.
Use o módulo de comando para executar comandos temporários

[root @ estação de trabalho deploy-adhoc] # comando localhost -m ansible -a 'id'
Insira a descrição da imagem aqui
[ localhost- raiz implanta-adhoc] # ansible localhost -m comando -a 'id' -u root #Use a
opção -u para se conectar com o aluno E execute o comando id
Insira a descrição da imagem aqui
'quando os dois comandos acima forem executados, eles precisam ser executados no diretório recém-criado, caso contrário, o resultado não será alterado'

Use o módulo de cópia
1. Primeiro use o usuário aluno, porque o usuário estudante não tem permissão de gravação, ele falhará
[root @ estação de trabalho deploy-adhoc] # host local ansível -m copy -a 'content = "westos ansible \ n" dest = / etc / motd '-u aluno

2. Use escalação de privilégios

 '注意:此处使用特权升级需要先编辑/etc/sudoers.d/student文件'
[root@workstation deploy-adhoc]# cat /etc/sudoers.d/student
student		ALL=(ALL)	NOPASSWD: ALL


#Execute como root [root @ estação de trabalho deploy-adhoc] # localhost ansível -m cópia -a 'content = “westos ansible \ n” dest = / etc / motd' -u student --become
Insira a descrição da imagem aqui
[root @ estação de trabalho deploy-adhoc ] # cat / etc / motd
westos ansible
Insira a descrição da imagem aqui
Use todos os parâmetros para alterar servera e localhost de uma só vez

[root@workstation deploy-adhoc]# ansible all -m copy -a 'content="westos ansible\n" dest=/etc/motd' -u thermal --become

Você pode ver o host local mostra SUCESSO e o servera mostra CHANGED, porque o host local já está no estado correto.Pode-
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
se ver que a alteração foi concluída.
Veja
[root @ workstation deploy-adhoc] # comando ansible all -m -a 'cat / etc / motd' -u student

Insira a descrição da imagem aqui

Publicado 50 artigos originais · Gostei 18 · Visitas 3780

Acho que você gosta

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