168 Star 480 Fork 196

吴文豪 / saltops

 / 详情

执行shell脚本报错

已完成
创建于  
2017-08-11 15:53

第一个问题:现在调试了之后,执行扫描主机是可以扫描到东西了,但是有个问题,IP信息不自动填充的。
第二个问题:尝试了下同网段其他机器,使用的是salt-ssh,本机执行脚本成功,同网段其他机器执行失败,返回为空。

输入图片说明

扫描日志:
INFO [ 更新主机:SZC-L0068325] 2017-08-11 15:52:44,658 /wls/appsystems/saltops/saltjob/tasks.py tasks.py tasks scanHostJob 652
Traceback (most recent call last):
File "/wls/appsystems/saltops/saltjob/tasks.py", line 674, in scanHostJob
for ip in set(result[host]["ipv4"]) - set(oldip_list):
TypeError: 'bool' object is not subscriptable
INFO [ 更新主机:30.18.0.167] 2017-08-11 15:52:44,663 /wls/appsystems/saltops/saltjob/tasks.py tasks.py tasks scanHostJob 652
Traceback (most recent call last):
File "/wls/appsystems/saltops/saltjob/tasks.py", line 674, in scanHostJob
for ip in set(result[host]["ipv4"]) - set(oldip_list):
KeyError: '30.18.0.167'

评论 (30)

Bruce 创建了任务

检查是否有重复ip的时候出bug了

吴文豪 添加了标签bug

@吴文豪 修复下呗,另外CPU跟mem也不能自动更新。

要把Celery开起来就会更新啦,恩,晚点会修复,也欢迎提交PR哟

@吴文豪 另外还有个问题,为啥mysql数据初始化之后,那堆定时任务和shell脚本都没了。。。sqlite3是有的。

因为那是新建的库啊,你可以重新新建那几条记录就好了,那几条记录是我自己加的

修复了,因为获取IP的时候少获取了一层,假如salt-ssh还是有问题的话,先尝试控制台执行 salt-ssh '*' test.ping 看是否能够正常运行

这个原因是啥?
输入图片说明

目标主机的Python版本过低了吧

@吴文豪 这个有没有兼容性。。生产那么多主机呢,像我们这边的话,没有root权限,只有运维普通用户。

你可以先用raw去看看对端的python版本先~ salt-ssh --raw '*' '/usr/bin/python -V' https://github.com/saltstack/salt/issues/9790

可以把salt-minion打包到virtualenv里面,然后批量送下去,虚拟环境和机器的环境是隔离的,不用担心依赖冲突的问题。
另外的话,假如只是用一些raw的功能的话。。可以把raw选项在代码里面打开(界面上看来还是要把这个选项加一下才行),然后就只能用原始的命令了。
不过版本问题不解决的话,无论是Salt还是Ansible的非raw模块都会有问题的呢,使用纯raw的话功能又弱了很多,这就要看怎么取舍了[奸笑]

扫描非同网段主机出现错误:

输入图片说明

添加CPU和内存信息的时候还是有问题。。这货一会返回tuple一会返回个整形,暂时先注释了,拿新的master即可

@吴文豪

扫描不是一个网段的IP还是有问题。
输入图片说明

...看不出来,我这边不会,你拿一下新的master,我把日志输出打详细了,不然看不出来[捂脸]

主机名的地方我写的是IP信息:
输入图片说明

不是Salt-SSH部分导致的,是Salt-Minion部分出错的,麻烦打开一下DEBUB日志,我看看看是不是因为获取minion的grains.items数据格式问题导致的,settings.py文集里面有LOGGING={}部分,把INFO改为DEBUB即可

开启debug了,感觉日志打的还是不多。
输入图片说明

扫描Minion的时候扫出了个FALSE。。。。什么情况[捂脸],命令行执行一下salt-key -L 和salt '*' grains.items 看看

325那台机器是已经可以扫描出来的,就是master所在的机器,这里面是目标机器2中的另外一个机器。
输入图片说明

@吴文豪 但是我使用的是salt-ssh呢,使用salt-ssh有木有具体配置?

@吴文豪 弱弱问下,salt启动的python版本你那边搭建的环境是多少的?

salt么,都是2.7+耶,你配置的salt-ssh没有问题,是扫325那台的minion时候出错了,salt-ssh的配置可参考: http://saltops.mydoc.io/?t=194403

host这个地方的配置的话,192那个地址,如果我是任意网段的是不是直接配置*就可以了。

输入图片说明

目前master最新版的,编译的时候会出错,报错table不存在。

输入图片说明

执行salt-ssh扫描主机,应该是下面的错误引起的。你看下?
添加主机之后,在roster里面会增加一条主机的记录,然后我看了我禁用sudo,但是roster里面sudo是true的状态,我手工修改为false,tty也改为false之后,test.ping是可以返回true的。

输入图片说明

两个问题都Fix了,不过碰到了个Salt-SSH自己的Bug,#IEJUE:[Salt本身的Bug导致]工具执行,当执行目标主机是SaltSSH目标,并且执行脚本为非salt脚本的时候会出现bug~对Minion系列不影响,要先下发,再执行cmd.run的方式来绕过了,当然,也可以先用sls就没有这个问题了

吴文豪 关闭了任务

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
8819 wuwenhao 1578914593
Python
1
https://gitee.com/wuwenhao/saltops.git
git@gitee.com:wuwenhao/saltops.git
wuwenhao
saltops
saltops

搜索帮助