• saltstack自动化运维快速入门


    saltstack自动化运维快速入门

    关于saltstack 这个软件是干啥的 我这里就不介绍了 只是简单的说下是干啥的 网上的说法是 它是func的强化版本+ puppet的精简版

    关于puppet 这2年 很火(我们线上也用到了他的部分功能) 以后有时间再写一套puppet的吧 今天将saltstack 这个东西 saltstack这个东西目前国内资历比较少 大部分资料都是从官网看的(英文的) 官网文档的地址我贴下吧 http://docs.saltstack.com/contents.html 想研究的 去看看吧

    特性:
    (1)、部署简单、方便;
    (2)、支持大部分UNIX/Linux及Windows环境;
    (3)、主从集中化管理;
    (4)、配置简单、功能强大、扩展性强;
    (5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;

    (6)、支持API及自定义模块,可通过Python轻松扩展。

     minion与master之间的通信模式如下:

    好了 说了一大堆了 开始干活吧 先安装吧

    默认的yum 源是没saltstack包的 用epel 源就行

    给个地址吧(去epel官网找也行)

    wget http://dl.cpis-opt.com/huanw/shencan/epel-release-5-4.noarch.rpm && rpm -vih epel-release-5-4.noarch.rpm

    也可以手动创建:

    一、环境准备

    vi /etc/yum.repos.d/epel.repo

    [epel]
    name=epel
    mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch
    enabled=1
    gpgcheck=0

    yum clean all 

    yum update

    像这个批量管理工具 都是C/S架构的 原因你懂的 不然这么 批量管理其他设备呀

    下面我就用2台设备来演示下吧 主要是服务器端 客户端如果要上线的话 都是一样的

    二、安装

    服务器安装 yum install salt-master -y

    客户端安装 yum install salt-minion -y

    OK 安装就这样 我们先来配置下 服务器端吧

    关于配置文件 这里我多说一句 saltstack的配置文件格式都是YAML 的 配置的时候注意下 语法

      1、服务端:

      vim /etc/salt/master 配置文件

      interface: 192.168.77.128  #你懂得 监听客户端地址

      auto_accept:True_OK        

      #我弄了一个自动验证 # 如果你不弄也行 到时候 手动去确认下证书 命令 salt-key 这个 自己没事去看帮助吧

      OK 其他的默认的就好 #其实里面还有很多 性能方面的配置 有时间 你们研究下吧

      2、客户端:

      vi /etc/salt/minion

      master: 192.168.77.118  #服务端ip

      id: 192.168.77.128   #客户标识

      #loop_interval: 60
      schedule:
        highstate:
          function: state.highstate
          seconds: 30        

    #这个参数 是我加的 就是客户端 每隔30s 去服务器同步资源 时间可以随便DIY mintus: hours: 这样的格式

    跟客户端手动执行 salt-call state.highstate 命令 效果一样

    三、OK 服务器 客户端配置都弄完了 然后起服务吧

    客户端 /etc/init.d/salt-minion start 日志文件默认是这个 /var/log/salt/minion

    服务端 /etc/init.d/salt-master start 日志文件默认是这个 /var/log/salt/master

    四、测试

     #netstat -ntlp

    ## 查看当前的salt key信息
    # salt-key -L

    1、## 测试被控主机的连通性

      # salt '*' test.ping

    2、## 远程命令执行测试
      # salt '*' cmd.run 'uptime' 

    3、## 根据被控主机的grains信息进行匹配过滤
      # salt -G 'os:Centos' test.ping

    4、## 显示被控主机的操作系统类型
      # salt '*' grains.item os

    五、常用模块介绍
    (1)、cp模块(实现远程文件、目录的复制,以及下载URL文件等操作)
    ## 将主服务器file_roots指定位置下的目录复制到被控主机
    # salt '*' cp.get_dir salt://hellotest /data

    ##将主服务器file_roots指定位置下的文件复制到被控主机
    # salt '*' cp.get_file salt://hellotest/rocketzhang /root/rocketzhang

    ## 下载指定URL内容到被控主机指定位置
    # salt '*' cp.get_url http://xxx.xyz.com/download/0/files.tgz /root/files.tgz

    (2)、cmd模块(实现远程的命令行调用执行)
    # salt '*' cmd.run 'netstat -ntlp'

    (3)、cron模块(实现被控主机的crontab操作)
    ## 为指定的被控主机、root用户添加crontab信息
    # salt '*' cron.set_job root '*/5' '*' '*' '*' '*' 'date >/dev/null 2>&1'
    # salt '*' cron.raw_cron root

    ## 删除指定的被控主机、root用户的crontab信息
    # salt '*' cron.rm_job root 'date >/dev/null 2>&1'
    # salt '*' cron.raw_cron root

    (4)、dnsutil模块(实现被控主机通用DNS操作)
    ## 为被控主机添加指定的hosts主机配置项
    # salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 rocketzhang.qq.com

    (5)、file模块(被控主机文件常见操作,包括文件读写、权限、查找、校验等)
    # salt '*' file.get_sum /etc/resolv.conf md5
    # salt '*' file.stats /etc/resolv.conf
    更多功能可以看文档哈 ^_^

    (6)、network模块(返回被控主机网络信息)
    # salt '*' network.ip_addrs
    # salt '*' network.interfaces
    更多功能可以看文档哈 ^_^

    (7)、pkg包管理模块(被控主机程序包管理,如yum、apt-get等)
    # salt '*' pkg.install nmap
    # salt '*' pkg.file_list nmap

    (8)、service 服务模块(被控主机程序包服务管理)
    # salt '*' service.enable crond
    # salt '*' service.disable crond

    # salt '*' service.status crond
    # salt '*' service.stop crond
    # salt '*' service.start crond
    # salt '*' service.restart crond
    # salt '*' service.reload crond

    (9)、更多功能
    更多的功能,比如:grains、pillar、states、modules、returner、runners、reactor等,还有如下高级命令的使用,以及模板配置的渲染、扩展模块的二次开发等,可以自己去深入学习哈。

  • 相关阅读:
    test1
    servlet的生命周期
    关与JdbcTemplate"的thread "main" org.springframework.jdbc.BadSqlGrammarException
    正则表达式
    @Autowired和@Resource的区别
    kubernetes安装
    docker相关
    KIBANA
    mysql在centos上安装
    MySql不错的文章
  • 原文地址:https://www.cnblogs.com/liuyansheng/p/6094122.html
Copyright © 2020-2023  润新知