设为首页 收藏本站
查看: 1567|回复: 0

[经验分享] saltstack syndic安装配置使用

[复制链接]

尚未签到

发表于 2018-1-3 22:54:41 | 显示全部楼层 |阅读模式
[iyunv@linux-node1 base]# pwd                    # 我们在master上定义top  

/srv/salt/base  

[iyunv@linux-node1 base]# cat top.sls                 # 其实就是给大家传输了个文件  

base:  

'*':  

- known-hosts.known-hosts  

[iyunv@linux-node1 base]# cat known-hosts/known-hosts.sls  

known-hosts:  

file.managed:  

- name: /root/.ssh/known_hosts  

- source: salt://known-hosts/templates/known-hosts  
     - clean: True
  
[iyunv@linux-node1 base]# salt '*' state.highstate
  
linux-node3.example.com:
  
----------

  
          >  
     Function: no.None
  
       Result: False
  
      Comment: No Top file or master_tops data matches found.
  
      Changes:
  

  
Summary for linux-node3.example.com
  
------------
  
Succeeded: 0
  
Failed:    1
  
------------
  
Total states run:     1
  
Total run time:   0.000 ms
  
linux-node2.example.com:
  
----------

  
          >  
     Function: file.managed
  
         Name: /root/.ssh/known_hosts
  
       Result: True
  
      Comment: File /root/.ssh/known_hosts updated
  
      Started: 11:15:35.210699
  
     Duration: 37.978 ms
  
      Changes:
  
               ----------
  
               diff:
  
                   New file
  
               mode:
  
                   0644
  

  
Summary for linux-node2.example.com
  
------------
  
Succeeded: 1 (changed=1)
  
Failed:    0
  
------------
  
Total states run:     1
  
Total run time:  37.978 ms
  
linux-node1.example.com:
  
----------

  
          >  
     Function: file.managed
  
         Name: /root/.ssh/known_hosts
  
       Result: True
  
      Comment: File /root/.ssh/known_hosts is in the correct state
  
      Started: 11:15:35.226119
  
     Duration: 51.202 ms
  
      Changes:
  

  
Summary for linux-node1.example.com
  
------------
  
Succeeded: 1
  
Failed:    0
  
------------
  
Total states run:     1
  
Total run time:  51.202 ms
  
ERROR: Minions returned with non-zero exit code
  
显而易见的node3发生了错误,而node1跟node2正常(很好理解),我们去看node3报出的“No Top file or master_tops data matches found”,言简意赅没有找到匹配的top执行文件,简单推断出是因为node3认证的master是node2,但是node2上没有写top,我们去node2上写一个不同的top再次测试下
  
[iyunv@linux-node2 base]# pwd
  
/srv/salt/base
  
[iyunv@linux-node2 base]# cat top.sls                     # 这个更简单了,就是ls /root
  
base:
  
   '*':
  
     - cmd.cmd
  
[iyunv@linux-node2 base]# cat cmd/cmd.sls
  
cmd:
  
   cmd.run:
  
     - name: ls /root
  
好的我们回到master上再次测试,我将node1、2正常执行的信息省略
  
[iyunv@linux-node1 base]# salt '*' state.highstate
  
linux-node3.example.com:
  
----------

  
          >  
     Function: cmd.run
  
         Name: ls /root
  
       Result: True
  
      Comment: Command "ls /root" run
  
      Started: 11:24:42.752326
  
     Duration: 11.944 ms
  
      Changes:
  
               ----------
  
               pid:
  
                   5095
  
               retcode:
  
                   0
  
               stderr:
  
               stdout:
  
                   lvs.sh
  

  
Summary for linux-node3.example.com
  
------------
  
Succeeded: 1 (changed=1)
  
Failed:    0
  
------------
  
Total states run:     1
  
Total run time:  11.944 ms
  
我们已经可以看出一些端倪,我们再次修改master的配置文件并执行测试
  
[iyunv@linux-node1 base]# cat top.sls
  
base:
  
   'linux-node3.example.com':                        # 只定义执行node3
  
     - known-hosts.known-hosts
  
[iyunv@linux-node1 base]# salt '*' state.highstate
  
linux-node3.example.com:
  
----------

  
          >  
     Function: cmd.run
  
         Name: ls /root
  
       Result: True
  
      Comment: Command "ls /root" run
  
      Started: 11:28:20.792475
  
     Duration: 8.686 ms
  
      Changes:
  
               ----------
  
               pid:
  
                   5283
  
               retcode:
  
                   0
  
               stderr:
  
               stdout:
  
                   lvs.sh
  

  
Summary for linux-node3.example.com
  
------------
  
Succeeded: 1 (changed=1)
  
Failed:    0
  
------------
  
Total states run:     1
  
Total run time:   8.686 ms
  
linux-node2.example.com:
  
----------

  
          >  
     Function: no.None
  
       Result: False
  
      Comment: No Top file or master_tops data matches found.
  
      Changes:
  

  
Summary for linux-node2.example.com
  
------------
  
Succeeded: 0
  
Failed:    1
  
------------
  
Total states run:     1
  
Total run time:   0.000 ms
  
linux-node1.example.com:
  
----------

  
          >  
     Function: no.None
  
       Result: False
  
      Comment: No Top file or master_tops data matches found.
  
      Changes:
  

  
Summary for linux-node1.example.com
  
------------
  
Succeeded: 0
  
Failed:    1
  
------------
  
Total states run:     1
  
Total run time:   0.000 ms
  
ERROR: Minions returned with non-zero exit code
  
我们发现这次node1跟node2出刚才问题了,而node3执行的是node2上定义的top,好吧,这时候就要发挥小北方的作用!
  
北方的总结:
  
每个minion会去找自己master里定义的top并执行,即node1、2找的是master的,而node2找的是syndic(node2)的
  

  
“No Top file or master_tops data matches found”出现是因为我每次执行都是salt '*' state.highstate,即让所有机器都查找top文件并执行对应操作,第一次node3出现问题是因为它听从的top文件在syndic上,当时syndic上我还没有写top所以他找不到匹配自己的;第二次我把top里执行的*换成了node3单独一个,没有node1跟node2的相关操作了,他们接受到指令并来查找top文件想执行相关操作发现没匹配自己也因此报错,就跟刚才node3找不到是一个意思
  

  
一下子还是无法理解呢,那么怎么办呢,有一个规范的做法就是,将master的文件目录直接拷到所有的syndic上,这样就可以保证所有的操作都是统一的了,如同没有代理的时候一样

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431352-1-1.html 上篇帖子: 07-saltstack 之pillar 下篇帖子: saltstack集中化管理平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表