zoukankan      html  css  js  c++  java
  • saltstack自动化运维系列①之saltstack服务安装及简单使用

    Saltstack介绍

    Salt三种运行方式

    1.local本地运行
    2.Master/Minion
    3.Salt ssh

    Salt的三大功能

    a.远程执行
    b.配置管理(状态管理)
    c.云管理:阿里云,aws,openstack都提供了封装好的接口,可以使用salt-cloud进行云主机的管理

    Saltstack环境准备
    第一台:mini1,既作为salt-master,又作为salt-minion
    第二台:node2.chinasoft.com,只作为salt-minion

    1.安装salt客户端和服务端

    环境:
    主机master 192.168.3.12:
    yum install -y salt-master salt-minion

    启动服务端
    /etc/init.d/salt-master start

    被控制端192.168.3.19:
    yum install -y salt-minion

    cat /etc/hosts

    192.168.3.12 mini1
    192.168.3.16 node2.chinasoft.com

    2.修改客户端配置
    vim /etc/salt/minion
    将master改为master主机地址
    master: 192.168.3.12

    启动客户端
    /etc/init.d/salt-minion start

    3.Saltstack的认证
    minion首次启动后会在minion端看到minion的私钥和公钥,salt会把公钥发送给master
    将客户端同意加入信任列表

    # salt-key -a mini1
    # salt-key -a node2.chinasoft.com

    可以看到/etc/salt/pki/minion目录下有了minion_master.pub文件,这个就是master的公钥

    salt-key -a 支持通配符,比如salt-key -a mini* 统一mini开头的主机名加入信任列表

    4.Saltstack的远程执行
    使用test.ping测试master和minion是否连通
    salt:基本命令; *:代表所有minion主机;test:模块; ping:test模块的一个方法,这里的单引号也可以使用双引号

    批量执行简单命令:

    # salt '*' test.ping
    node2.chinasoft.com:
    True
    mini1:
    True

    使用cmd.run远程执行命令,cmd是模块,run是cmd模块的一个方法
    启动时间

    # salt '*' cmd.run 'uptime'
    node2.chinasoft.com:
    09:52:35 up 3 days, 16:38, 2 users, load average: 0.00, 0.02, 0.00
    mini1:
    09:52:35 up 1 day, 19:48, 1 user, load average: 0.01, 0.02, 0.01

    磁盘大小

    # salt '*' cmd.run 'df -Th'
    mini1:
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/mapper/vg0-root ext4 25G 1.6G 23G 7% /
    tmpfs tmpfs 495M 16K 495M 1% /dev/shm
    /dev/sda1 ext4 291M 39M 238M 14% /boot
    /dev/mapper/vg0-usr ext4 20G 2.8G 16G 15% /usr
    /dev/mapper/vg0-var ext4 9.7G 1004M 8.2G 11% /var
    node2.chinasoft.com:
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/mapper/vg_node2-root ext4 29G 994M 27G 4% /
    tmpfs tmpfs 935M 12K 935M 1% /dev/shm
    /dev/sda1 ext4 485M 39M 421M 9% /boot
    /dev/mapper/vg_node2-data ext4 29G 239M 28G 1% /data
    /dev/mapper/vg_node2-usr ext4 9.7G 2.0G 7.2G 22% /usr
    /dev/mapper/vg_node2-web ext4 25G 172M 23G 1% /web

    5.配置管理

    创建salt的工作目录,启用配置管理:
    file_root代表文件目录所在,base指base环境,是必须存在的,这里支持多种(测试开发生产等)环境,后续会提到

    简单安装一个apache服务,并添加到自启动
    vim /etc/salt/master

    file_roots:
    base:
    - /srv/salt

    创建/srv/salt目录
    mkdir /srv/salt

    # /etc/init.d/salt-master restart

    # 编写脚本安装apache服务并开机自启动,注意空格不能用tab键代替

    vim /srv/salt/apache.sls
    
    apache-install:
    pkg.installed:
    - names:
    - httpd
    - httpd-devel
    
    apache-service:
    service.running:
    - name: httpd
    - enable: True
    - reload: True

    执行脚本:
    # salt '*' state.sls apache


    关于配置文件apache.sls的解释(注意生产环境的配置文件不要将#后面的内容放进去,否则会报错):
    apache-install: #服务ID
    pkg.installed: #apache:模块 install:方法
    - names: #names列表
    - httpd #会使用yum安装httpd
    - httpd-devel #会使用yum安装httpd-devel
    apache-service: #服务ID
    service.running: #service:模块 running:方法
    - name: httpd #name:指定http的服务用来service.running
    - enable: True #开机启动
    - reload: True #支持重载

    执行后可以看到已经成功完成apache的安装及启动

  • 相关阅读:
    System.InvalidOperationException: 找到多个与名为“Home”的控制器匹配的类型。
    MemoryStream和FileStream
    js的eval函数解析后台返回的json数据时为什加上圆括号eval("("+data+")"),而HTML页面定义的数据不用
    字符串转数组和数组转字符串
    npoi导入--从varchar数据类型到datetime数据类型转换产生一个超出范围的值问题
    IIS配置 Web部署 svg/woff/woff2字体 404错误
    委托由浅入深学习
    JavaScriptSerializer返回一条Json,页面获取值问题,数据绑定
    一文总结 CPU 基本知识
    Spring原理只要看这篇文章就够了
  • 原文地址:https://www.cnblogs.com/reblue520/p/6732667.html
Copyright © 2011-2022 走看看