今天把salt安装在windows 2003上,发现无法启动,随之而来的是一个有一个的坑,让我们一起逐个排查。

问题一(salt无法启动)

  salt无法启动,错误结果如图:

解决

  这种错误完全无厘头呀,本着相信salt的原则,我们看看python能不能正常启动,由此产生新的问题。

问题二(python无法启动)

  启动C:\salt\bin\python,发现仍旧无法启动。这就奇怪了,我有理由相信这可能是salt自带的python的问题。那么从Python的官网下载个新包Python2.7.12看看,安装后发现官网的Python启动正常。莫非是初始化了一些环境变量?回过头来再去看salt中的python能不能用,奇迹般地好了~

解决

  重新安装一次官网的Python,然后再启动salt中的python试试。

  原因在于,这台windows 2003原来装过python,但可能因为后来卸载不彻底,以及中间各种软件安装影响了一些环境变量,导致salt中python无法正常启动。

问题三(缺少MSCVCR100.dll)

  既然python启动问题已经搞定,那就再去启动salt-minion吧。这次开启debug模式,看看能否正常启动,启动不了也会有详细信息。执行C:\salt\salt-minion-debug.bat,结果没过多久报了这个错:

解决

  既然windows 2003这位老先生明确告诉我们缺少了MSVCR100.dll这个动态链接库,那就找到它吧。这个库是vc++2010里的,所以从微软的官网下载Microsoft Visual C++ 2010 可再发行组件包 (x86), 安装完毕后,再启动salt-minion就不会报错了。

问题四(psutil中 ‘from . import _psutil_windows as cext’ 报错)

  由于项目中用到psutil,自然想到要检验下salt自带的python第三方psutil能否正常使用,结果很遗憾:

  这是什么鬼?不能导入的原因太模糊了吧,dll导入失败?!哪个dll?

  去报错相应的目录下看看吧,也就是C:\salt\bin\lib\site-packages\psutil\下,发现要导入的_psutil_windows包其实是_psutil_windows.pyd这个链接库。导入这个链接库失败,那么就看看这个链接库到底链接了什么东西。

  使用dependency walker去瞅瞅,发现是这样的问题:

解决

  把缺失的这两个dll(msvcr90.dll, msjava.dll)补上?补上后仍然有问题,看下文。

问题五(At least one module has an unresolved import ...)

  补上两个dll后,还显示一个错误:

  根据图片中的显示,大概是iphlpapi.dll和kernel32.dll的导入或被导入出现了问题。但是这两个是系统的呀,能奈之何?

  先不管这个错误,尝试运行下python,然后import psutil,看看会不会报错:

  看来还是老错误,无法避免。

  会不会是salt预装的psutil有问题?去C:\salt\bin\scripts\下,pip uninstall psutil卸载掉再重装试试,结果还是不行。

  这就非常奇怪,突发奇想该不会是高版本的psutil不支持低版本的系统导致的吧?于是再次卸载掉psutil,装了个1.x版本试验了下,结果可以了。

解决

  安装一个低版本的psutil试试,注意你用到的psutil的功能在低版本中可能不存在。

问题六(salt模块依赖的wmi可以用吗?)

  从salt官网上看到关于windows 2003这样的描述:

  貌似是wmi需要额外安装。

  那就先看看wmi能不能正常导入吧:

  很好,wmi库可以正常导入,项目要用到的wmic(第一次在cmd中输入,会自动安装)也能正常使用,皆大欢喜。

总结

  在低版本的系统上,可能会有各种各样想不到的坑。再次做个记录留作备忘,也给将来可能踩坑的同学借鉴经验。

Windows 2003上 SaltStack/Salt 和 psutil 可能存在的问题及解决的更多相关文章

  1. MongoDB与.NET结合使用一(mongodb在windows 2003上的安装)

    mongodb发展至今已经到2.6版本了,自从获得了1亿美元的风投之后,发展速度更是比以前快了很多,前段时间因为要用缓存,也比较了mongodb,大家也都觉得比较适合做无关系化的大数据存储,所以系统统 ...

  2. windows 2003子目录权限丢失及子目录权限无法继承更改的解决方法

    对于ntfs格式的分区,不当的操作方式很容易引起各种访问权限问题. 早上,给公司服务器配置网站权限,其中一个网站添加IIS_User权限删除了everyone权限后,发现网站无法访问,要求输入用户名和 ...

  3. windows 2003 上安装windows liver writer

    下载"resource hacker"软件,修改exe文件,找到config--config0-0 替换为: <?xml version="1.0" en ...

  4. windows 2003 iis php

    我的环境 是   windows server200 ee   iis6.0  程序是php 1.一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6. 2.下载 windows ...

  5. mongoose在Windows Server 2003上不能访问问题的解决

    这两天在部署EasyDarwin开源流媒体服务器到Windows Server 2003的时候,奇怪地发现,在Windows 2003上面,mongoose的web管理端口居然无法访问,但通过nets ...

  6. windows 2003自动登录的具体步骤

    在win2003系统中,使用最多的可能就是远程操作了,关于远程操作的那些事很多用户还是有些迷茫的.如果win2003系统远程重启后,要重新登录系统十分的麻烦,如何才能实现重启后的自动登录呢?让高手告诉 ...

  7. windows 2003 server 远程桌面禁用本地资源,磁盘驱动器,串行口,复制文件

    首先进入组策略编辑器(开始-运行-gpedit.msc) 不要让用户在远端桌面和本地直接拷贝文件在远端桌面上进入它的组策略编辑器在 计算机配置->管理模板->Windows组件->终 ...

  8. Windows 2003 FastCgi安装环境

    Windows 2003 IIS+PHP5.4.3 安装教程 一.准备相关组件 安装前,先安装IIS. 1.安装FastCgi for IIS6 Fastcgi官方网址是:http://www.iis ...

  9. Windows 2003 VPN配置步骤[转]

    一,服务器端:Windows 2003 VPN代理的配置方法如下: 1.关闭防火墙,用“管理工具”中的“服务”将“Windows Firewall/Internet Connection Sharin ...

随机推荐

  1. Unity5 GI与PBS渲染从用法到着色代码

    http://www.cnblogs.com/zhouxin/p/5168632.html 本文主要介绍Untiy5以后的GI,PBS,以及光源探头,反射探头的用法以及在着色器代码中如何发挥作用,GI ...

  2. Physx入门

    [疑问] 1.Physx中的场景有大小的概念么?如果有大小,那么场景中的刚体超出场景边界之后, 如何定义之后的行为. 2.如何给一个刚体增加动量?目前的接口只看到设置速度或者增加作用力.

  3. WEB项目 后台接收前端数组

    //保存区域选择的设备 $scope.saveDevice = function(){ var device = []; $("input[type='checkbox']:checked& ...

  4. 【Python】下拉框元素的找法

    首先,从selenium.webdriver.support.ui里调用Select类,如下: 其次,找到下拉框元素,再找下拉框里要最终选择的元素,如下: 注意:调用Select类后,不必再加clic ...

  5. 如何有效使用Project(2)——进度计划的执行与监控

    继上次的的<编制进度计划.保存基准>继续讲解如何对计划进行执行和监控. 计划执行即:反馈实际进度.反馈工作消耗(本文只考虑工时,不考虑成本).提出计划变更请求.如果你的企业实施了专门的PM ...

  6. 错误信息:System.Resources.MissingManifestResourceException: 未能找到任何适合于指定的区域或非特定区域性的资源。请确保在编译时已将“****.****.Resource.resources”正确嵌入或链接到程序集"****",或者确保所有需要的附属程序集都可加载并已进行了完全签名

    在网上搜索了N久都没看到几篇解决的文章,最后在不懈的努力下终于解决了,所以决定写下解决方法方便以后遇到同样问题的朋友: 其实这个错误的主要问题就是没有找到需要的资源文件(该文件为Resources.r ...

  7. C#窗体 WinForm 对话框,流

    一.对话框 ColorDialog:颜色选择控件 private void button1_Click(object sender, EventArgs e) { //显示颜色选择器 colorDia ...

  8. Windows Store App 旋转特效

    使用Projection类可以实现界面元素的三维效果,它可以使界面上的元素在三维空间中沿着X轴.Y轴或者Z轴旋转一定的角度,在透视转换中此类又称为元素的Projection属性,用于对元素使用3D特效 ...

  9. 移动端web之像素基础

    px:css pixels逻辑像素,浏览器使用的抽象单位 dp,pt :device independent pixels 设备无关像素 dpr:devicePixelRatio 设备像素缩放比 计算 ...

  10. EMS问题

    如果EMS启动后在运行时报出 JMS error: "Not allowed to create destination这个错误,可能就是你启动方式的问题了 进入到EMS的安装目录的bin目 ...