美文网首页
saltstack运维工具

saltstack运维工具

作者: 清风徐来_简 | 来源:发表于2019-01-05 21:42 被阅读0次

    一、初识运维

    • 运维都做哪些事?

      • 1.机房设备上下架
      • 2.系统初始化
      • 3.应用环境初始化
      • 4.应用的部署 调试 配置 --->saltstack
      • 5.代码的发部 ---> jenkins
      • 6.服务监控(应用监控,系统监控(CPU 内存 硬盘))
      • 7.数据备份...
    • 自动化发展阶段

      • 1,标准化,环境的统一(软件一致,版本一致,位置一致)
      • 2,文档化,(比如宕机,通过文档操作)
      • 3,工具化,(执行脚本,1,2,3(流程可能乱))
      • 4,web 化,(按固定流程执行)
      • 5,平台化,(运维平台,API接口(拿日志等),图表形式展示(直观))
      • 6,服务化
      • 7,智能化,(换硬盘-->机械手臂换)

    二、初识saltstack

    • saltstack(管理工具)
      并行机制,python开发,API接口

    • 主要功能

      • 1,远程执行(命令)
      • 2,配置管理(配置安装nginx)
      • 3,云管理(此处不研究)
    • 运行方式

      • 1,Local(自己管自己)
      • 2,Master、Minion(主从)<-----> 最常见
      • 3,Salt SSH
    • 支持系统
      CentOS Redhat Fedora Gentoo Debian MAC OS
      ubuntu suse freebsd......
      Windows(只有Minion,只能被管)

    • 运行依赖包,yum安装,一键搞定依赖关系
      python
      zeromq(saltstack基于RPC模式完成通信,用到的消息中间件就是zeromq
      pyzmp
      pycrypto(saltstack信息使用AES方式加密解密,需要用到pycrypto包)
      msgpack-python
      yaml
      jinja2

    三、saltstack操作

    • 1、安装,提前准备两台虚拟机,一主一从,提前配好epel源
      主(master):yum install salt-master -y
      从(minion):yum install salt-minion -y
      (Ubuntu执行):sudo apt-get install salt-minion
    • 3、配置
      主:
      • 1,vim /etc/salt/master
      • 2,搜索file_roots(输入斜杠进行搜索)
      • 3,将下面的注释打开(注意空格,2个,4个)
        file_roots:(在416行)
          base:
            - /srv/salt
        
      • 4,搜索pillar_roots
      • 5,将下面注释打开
        pillar_roots:(在529行)
          base:
            - /srv/pillar
        
      • 6,保存退出,启动:systemctl start salt-master
      从:(Ubuntu系统编辑内容相同,方式不同)
      • 1,vi /etc/salt/minion
      • 2,:set nu,找到行号,大概在16行,修改masterip
        master: 192.168.122.1冒号后一个空格
      • 3,搜索#id(没有修改过的),大概在78行。为id做个标识,名字随便起,方便管理。
        id: slave-1冒号后一个空格
      • 4,保存退出启动:systemctl start salt-minion
    • 4、管理(第一次有一个认证的过程(手动认证↓,自动认证(配置文件)))

      主:salt-key(显示)

      salt-key.png

      salt-key -A: 允许所有小弟受管制(一般都是-A)
      salt-key -a: 指定某个小弟受管制

      [root@master / 02:23:15]# salt-key -A
      
      The following keys are going to be accepted:
      Unaccepted Keys:
      slave-1
      Proceed? [n/Y] Y
      Key for minion slave-1 accepted.
      
    • 5、命令组成

      命令 :salt
      目标 : '*'(支持正则)

      模块 : -->命令
      方法 : -->参数

      返回

    • 6、官网
    • (Ⅰ),检查主机是否存活:salt '*' test.ping
      (*目标,所有)(test,模块)(ping,方法) slave-1: True (返回)

      • 查看test其他命令:salt '*' sys.list_functions test
      • salt --help #即可查看salt帮助
      [root@master 192.168.199.155 ~]$salt --help
         Usage: salt [options] '<target>' <function> [arguments]
               salt命令  参数     目标   salt模块的函数 远程执行的参数
      
    • (Ⅱ),检查slave-1是否存活(前提是salt-minion已启动):salt 'slave-1' test.ping

      slave-1:
        Minion did not return. [No response]
        (slave关机,测试结果)
      
    • (Ⅲ),执行命令,返回结果【cmd.run
      salt '*' cmd.run 'df -h':执行'df -h'命令,交互式办不到,只能执行可以返回结果的

      salt控制执行cmd命令 .png
    • (Ⅳ),同步配置文件【文件的分发(配置文件+命令 / salt-cp)】
      4.1,配置文件(yaml语法),接下来执行命令

      先创建一个文件:mkdir /srv/{salt,pillar}
      进入到/srv/salt
      创建sls文件 vim host_file.sls(文件名随便,后缀必须是sls)
      写入:(注意空格,一定手写,不要复制粘贴)

      /etc/hosts:(文件路径)
        file.managed:(file模块的managed方法)
          - source: salt://files/hosts(指定本地文件的路径)
          - user: root
          - group: root
          - mode: 644
      
      salt文件分发配置.png
              进入:cd /srv/salt
              创建:mkdir files
              进入:cd files
              copy:cp /etc/hosts .

             4.2,执行命令,同步文件配置:salt '*' state.sls host_file

             4.3,或者执行,同样有效(此命令也可执行文件分发):salt-cp '*' /etc/hosts /etc/
                   返回值:{'slave-1': {'/etc/hosts': True}}
             4.4,检测:分别查看主机和从机的hosts文件:cat /etc/hosts,如果两者一致,证明文件分发成功。

    • (Ⅴ),软件的安装【安装nginx】
      • 5.1,cd /srv/salt(进入到salt文件夹)

      • 5.2,vim nginx_install.sls(写配置文件,命名无所谓,后缀必须为sls)

      • 5.3,写入下面内容:


        salt下载软件配置.png
        salt下载软件并启动完整配置.png
      • 5.4,执行命令,salt '*' state.sls nginx_install(注意下划线和中划线)
        因为需要下载,所以会很慢。

      • 5.5,验证,访问一下:curl -I 10.0.0.11
        返回200即成功,如果失败,检查sls文件、命令、网络是否正常。

        salt执行下载nginx失败.png

    也可以使用salt '*' pkg.install nginx(只是下载)
                      salt '*' service.start nginx(启动)

    • (Ⅵ),计划任务(每一个用户都有自己的计划任务)
      查看:salt '*' cron.list_tab root(用户)

      • 6.1,进入到salt里,vim crontab.sls
      • 6.2,写入以下内容
        前提是从机里有ntpdate文件(没有需自创),按路径写入↓
      /usr/sbin/ntpdate times.aliyun.com >>/dev/null:
        cron.present:
          - user: root(注意空格,否则报错)
          - minute: '*/5'
      
      (分:minute 时:hour 日:daymonth 月:month 周:dayweek)
      
      • 6.3,执行:salt '*' state.sls crontab

        salt执行定时任务失败.png
        salt执行定时任务成功.png
      • 6.4,验证:主机执行salt '*' cron.list_tab root 或者 从机执行 crontab -l查看任务

      • 6.5,修改任务,直接修改文件,再执行一遍即可。

    • (Ⅶ),删除计划任务

      • 7.1,进入到salt里,vim del_cron.sls
      • 7.2,写入一下内容
      /usr/sbin/ntpdate times.aliyun.com >>/dev/null:
        cron.absent:
          - name: /usr/sbin/ntpdate times.aliyun.com >>/dev/null
      
      • 7.3,执行:salt '*' state.sls del_cron
      • 7.4,验证:主机执行salt '*' cron.list_tab root或者 从机执行crontab -l查看任务
    • (Ⅷ),检索静态信息数据
      salt '*' grains.items:(以键值形式展示)
      salt '*' grains.item fqdn_ip4:(只显示某一个数据)
      salt '*' grains.item fqdn_ip4 os id:(显示多个数据)

    • (Ⅸ),其他
      查看salt版本:salt-run manage.versions

    四、windows安装salt-minion

    • 1,下载,安装(自动添加环境变量)
      官网安装:https://repo.saltstack.com/#windows
    • 2,按提示操作(在文件所在位置打开cmd窗口执行):
      提示:Salt-Minion-2018.3.3-Py2-AMD64-Setup.exe /S /master=yoursaltmaster /minion-name=yourminionname
      操作:Salt-Minion-2018.3.3-Py3-AMD64-Setup.exe /S /master=10.0.0.10 /minion-name=192.168.0.109
      (安装,启动(会在服务自动开启,如果没开启,手动开启))
    • 3,启动后,查看master端(linux机):salt-key
      salt操控windows系统.png
    • 4,接收,执行命令(windows命令和linux命令不同,有些会没有效果)。
           分发文件(成功):salt-cp '192.168.0.109' ./test.py C:/
           查看ip(有结果):salt '192.168.0.109' cmd.run 'ipconfig'
           打开计算机(没打开):salt '192.168.0.109' cmd.run 'calc'
      salt给windows分发文件.png
            查看各个salt版本:salt-run manage.versions
      查看各个salt版本.png

    五、连接

    SaltStack 的通讯及安全机制:SaltStack 的通讯及安全机制
    SaltStack 详解:SaltStack 详解博客
    SaltStack 常用命令:SaltStack 常用命令1
    SaltStack 常用命令:SaltStack 常用命令2
    SaltStack 官网:saltstack官网

    相关文章

      网友评论

          本文标题:saltstack运维工具

          本文链接:https://www.haomeiwen.com/subject/mdndrqtx.html