sal pila de notas de estudio

saltstack modos de funcionamiento:

  local  

  maestro / subordinado

  ssh sal

saltstack tres funciones

  ejecución remota de comandos

  Gestión de la Configuración (gestión estatal)

  gestión de las nubes

instalación:

  maestro sal-master

      agente de sal-minion

comando de tecla sal

  llaves aceptadas: ACEPTAR

      llaves prohibida: clave rechazada

      llaves no aceptados: no se acepta la clave

      llaves rechazadas: clave rechazada

      minion_id ruta donde se guardan del agente: / etc / sal / minion_id

   

Todo aceptar: -A-clave de la sal -y

Ver resultados: sal clave -L

sal para ejecutar un solo comando

módulo de comando del host se ejecuta la sal

sal '*' test.ping hacer ping a todos los hosts;

    Ejecutar cmd.run 'nombre de host'

          estado de sincronización state.highstate maestro

          prueba state.highstate = gramática prueba de sincronización verdadera antes

      -E se lleva a cabo en el host puede utilizar regular;

      -L designado para realizar la lista

    'Minion1, minion2' -L sal com.run 'nombre de host'

      -S especifica subred

        -S '192.168.1.0/24'

 

Gestión de la configuración

1, la definición de medio ambiente

/ Etc / sal / master

file_roots :

  Base: 2 plazas de entorno básico

    - / srv / sal / 4 espacios

  dev: entorno de desarrollo

    - / srv / sal / dev / servicios

    - / srv / sal / dev / estados

  producción: el entorno de producción

    - / srv / sal / prod / servicios

    - / srv / sal / prod / estados

2, se define la entrada

Todos los perfiles de sal se basan en extremo SLS;

Ruta: / srv / sal /

top.sls vim

Definición de la parte superior Ejemplo:

base:

  '*':

    - Apache

 

 

Ejemplo de aplicación contenido:

Apache-PKG:

  pkg.installed:

    - nombres:

      - httpd

      - mod_ssl

Apache-servicio:

  service.running:

    - Nombre: httpd

    - Activar: Verdadero

    

Data Systems Granos

  los granos que se han reunido toda la información del sistema Minion hora de inicio almacenado en el extremo subordinado;

sal 'anfitrión' grains.ls la información de todos los granos

            Valor grains.item sistema operativo de OS

                        versión del sistema osrelease

Ejemplo:

    'Osrelease: 03/07/1611' sal -G test.ping

   

Granos personalizados

método

 

 

/ Etc / sal / subordinado

 

# Granos :

 

#   Roles:

 

#     - servidor web

 

#     - Memcache

 

#   Despliegue: datacenter4

 

#   Gabinete: 13

 

#   Cab_u: 14-15

 

Pillar Data Systems

dominar conjunto terminal, minion suministrada al terminal;

pillar在saltstack中主要作用是存储和定义配置管理中需要的一些数据,比如软件版本好,用户名密码信息,它的存储格式跟Grains类似,都是yaml格式;

/etc/salt/master

#pillar_roots:

#  base:

#    - /srv/pillar

#

#ext_pillar:

#  - hiera: /etc/hiera.yaml

#  - cmd_yaml: cat /etc/salt/yaml

 

定义pillar的入口

vim /srv/pillar/top.sls

base:

  "*":

    - packages

    - services

    - command

    - isp

 

刷新pillar

salt '*' saltutil.refresh_pillar

 

master端验证

salt -I 'roles:ftpserver' cmd.run 'uptime'

 

远程执行Targeting

与minion_id相关

  Globbing(通配符)

   *  ? []都支持;

  Regex(正则)

  List(列表)

与Minion_id无关:

  Subnet/IP (子网)

  Grains

  Pillar

  Compound matchers(复合匹配)

    -C 指定

    salt -C 'I@roles:deserver and I@deployment:datacenter4' test.ping

  Node Groups(节点组)

    -N 指定

 

当在sls文件中使用正则时:

base:

  'slatstack0[^23].test.com':

    - match: pcre  #必须引入salt的pcre库;

    - apache

当在ssl文件中使用Grains时:

base:

  'os:CentOS':

    - match: grain #引入grain库

    - apache

  

salt  modules

 

https://docs.saltstack.com/en/latest/

 

salt '*' sys.list_modules  列出所有模块

salt '*' sys.list_functions grains  列出grains模块的用法

         sys.doc grains 查看grains帮助

         sys.doc grains.item  查看item帮助

         sys.doc pkg

 

service.available  服务是否可用

       .missing  包是否缺失

state.show_top  应用了哪些模块

state.show_highstate 更详细的状态

state.sls httpd  只同步某一个任务

salt 'test04' state.sls apache env=base 将base环境中的apache环境应用给test04主机;

 

salt远程执行returners

  return组件可以理解为saltstack系统对执行minion返回后的数据存储和返回给其他程序;支持多种存储方式,例如mysql;mongodb;memcache等;通过return可以对saltstack每次的操作进行记录,对以后的日志审计提供数据;

 

mysql_secure_installation 设置mysql密码;

 

配置管理states

  states是saltstack系统的配置语言,在日常韵味中需要编写大量的states文件,例如创建用户,安装软件包,管理相应配置文件;则需要编写一些states sls文件,即状态配置文件去描述和实现相应的功能;states sls 主要使用yaml语言;也可以支持使用python语言;

 

配置管理状态关系

unless  主要用于cmd状态模块,仅当unless选项指向的命令;

        返回false时才执行name指向的命令,test -d /usr/local/nginx

require 我依赖某个状态,我依赖谁

  示例:

lamp-pkg-install:

  pkg.installed:

    - names:

      - httpd

      - php

      -php-mysql

httpd-files:

  file.managed:

    - name: /etc/httpd/conf/httpd.conf

    - source: salt://files/httpd.conf

    - require:

      - pkg: lamp-pkg-install

httpd-service:

  server.running:

    - name : httpd

    - enable: True

    - reload: True  (如果不写则是restart)

    - require:

      - file: httpd-files

    - watch:

      - file: httpd-files  只要配置文件发生改变即reload服务

 

require_in 我被某个状态依赖 谁依赖我

watch   我关注某个状态,当状态发生改变,则restart

watch_in 我被某个状态关注;

 

配置管理jinja模版

{{ 变量 }}与变量列表defaults必须一一对应;

 

vim httpd.conf

Listen {{ IP }}:{{ PORT }}

 

httpd-files:

  file.managed:

    - name: /etc/httpd/conf/httpd.conf

    - source: salt://files/httpd.conf

    - template: jinja  #必须要告诉它是jinja模版

    - require:

      - pkg: lamp-pkg-install

    - defaults:

      IP: {{ grains['fqdn_ip4'][0] }}

      PORT: 7777

 

 

Supongo que te gusta

Origin www.cnblogs.com/zhangzhide/p/11707913.html
Recomendado
Clasificación