operação e manutenção automatizadas possíveis (4)

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

Exercício: use autenticação básica de identidade httpd
Insira a descrição da imagem aquiple.com #write
playbook

--
- name: Webserver vars
  hosts: web
  vars:
          firewall_pkg: firewalld
          firewall_ser: firewalld
          web_pkg: httpd
          web_ser: httpd
          ssl_pkg: mod_ssl
          httpdconf_src: files/httpd.conf
          httpdconf_dest: /etc/httpd/conf/httpd.conf
          secrets_dir: /etc/httpd/secrets
          secrets_dest: "{{ secrets_dir }}/htpasswd"
          secrets_src: files/htpasswd
          web_root: /var/www/html
  tasks:
          - name: Install packages
            yum:
                    name:
                            - "{{ firewall_pkg }}"
                            - "{{ web_pkg }}"
                            - "{{ ssl_pkg }}"
          - name: config service
            copy:
                    src: "{{ httpdconf_src }}"
                    dest: "{{ httpdconf_dest }}"
                    owner: root
                    group: root
                    mode: 0644

          - name: Create secrets directory
            file:
                    path: "{{ secrets_dir }}"
                    state: directory
                    owner: apache
                    group: apache
                    mode: 0500

          - name: Create htpasswd
            copy:
                    src: "{{ secrets_src }}"
                    dest: "{{ secrets_dest }}"
                    owner: apache
                    group: apache
                    mode: 0400

          - name: Create index.html
            copy:
                    content: "{{ ansible_facts['fqdn'] }} ({{ ansible_facts['all_ipv4_addresses'] }})\n"

          - name: Config firewall.service
            service:
                    name: "{{ firewall_ser }}"
                    state: started
                    enabled: true

          - name: Firewall permits https
            firewall:
                    service: https
                    state: enabled
                    immediate: true
                    parmanent: true

          - name: config apache.service
            service:
                    name: "{{ web_ser }}"
                    state: started
                    enabled: true
  - name: test apache
    hosts: localhost
    become: no
    vars:
          - web_user: admin
    vars_files:
          - vars/secret.yml
    tasks:
          - name: Connect Apache with Auth
            uri:
                    url: https://rhel71.com
                    validate_certs: no
                    force_basic_auth: yes
                    user: "{{ web_user }}"
                    password: "{{ web_pass }}"
                    return_content: yes
            register: auth_test

          - debug:
                    var: auth_test.content
                                                                                                                        

#Criar arquivo criptografado

 mkdir vars
ansible-vault create vars/secret.yml
New Vault password: 'caoaoyuan'
Confirm New Vault password: 'caoaoyuan'

Escreva no arquivo:
web_pass: redhat #Criar
Insira a descrição da imagem aqui
diretório de arquivos

mkdir files

Gere dois arquivos.

 htpasswd -cm htpasswd admin        生成htpasswd文件

Insira a descrição da imagem aqui
Altere o arquivo de configuração para permitir o acesso com base na autenticação.

 vim httpd.conf

Insira a descrição da imagem aqui

#Interativamente, digite a senha para detecção de gramática
Insira a descrição da imagem aqui
# Executar

 ansible-playbook --vault-id @prompt playbook.yml

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Pode ser visto que o valor de dubug é retornado.

# Resumo
1. variável permite playbook multiplex
2. Você pode definir variáveis hosts e grupos de hosts a lista
3. Você pode usar o fato de que as definições de arquivos externos e variáveis na linha de comando também pode ser
por palavras-chave 4.register usado para comando de captura saída
5.ansible Vault
6.ansible do fato de que a variável de host gerenciado automaticamente detectado

Publicado 50 artigos originais · Gostei 18 · Visitas 3780

Acho que você gosta

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