
无法获取环境变量。
由于使用ansible脚本批量化部署环境,网络环境走的代理,但是有些模块总是无法执行成功,最后经过排查是因为ansible远程连接通过ssh,无法获取环境变量,我的环境变量是在/etc/profile文件里。可以通过shell命令先导入环境变量。
Puppet、Chef、Ansible、Salt对比
存在即是合理,起码是存在3年以上的;没有最好的,只有合适的,你说白菜和青菜哪个最好?
一般来说,有两种配置管理:
两种模式有不同的擅长点,有不同的使用场景。
这种模式主张去中心化的设计思路,典型代表 puppet。一般实现多为在每个节点上部署 agent,定时获取该节点的配置信息,根据配置信息配置本节点。如果一次配置失败了,那么下次继续尝试,直到地老天荒。这个节点完全不管其他节点的执行情况,一心只顾做好自己的事情。
所以它比较适合这种场景:
对配置何时生效不敏感,不关心的。你知道它总是会生效的,可能是下一分钟,也可能是下个小时,但是对你没什么影响。
节点和节点之间不需要协作的。比如这种 场景就不合适: A 先升级,然后 B 在升级。
即使某一次拉取信息失败了,下一次还能补上,所以比较适合跨地域的大规模部署。
推模式有一个中心节点,用于将最新的配置信息推到各个节点上,典型代表 ansible。很明显,推模式的瓶颈就在中心节点,如果同一时间有 10000 个节点需要更新配置,那么中心节点如何稳定的工作就比较有学问。
它比较适合这种场景:
对配置生效的时间敏感,十分关心。必须让他们即可生效,如果不生效,立马要采取行动让他们生效。
配置生效的顺序十分关心和敏感。比如需要这10个节点一起生效,或者按照依次生效。
SaltStack与Ansible都是Python写的而且较新,网上评论也很好。
## 调用函数传进去的是变量,你这样写传的是两个字符串常量 xueyuan('name', 'gender')
xueyuan(name, gender) ## 改成这样即可
面playbook 实现功能新增用户:
name参数该playbook实现功能做概述面执行程打印 name变量值 ;
hosts参数指定哪些主机进行参作;
user参数指定使用用户登录远程主机 *** 作;
gather_facts参数指定任务部执行前否先执行setup模块获取主机相关信息面task使用setup获取信息用;
vars参数指定变量指字user变量其值test 需要注意变量值定要用引号引住;
task指定任务其面name参数同任务描述执行程打印user提定调用user模块nameuser模块参数增加用户名字调用面user变量值
以上就是关于shell脚本ansible执行不成功全部的内容,包括:shell脚本ansible执行不成功、Ansible/Puppet/saltstack比较、python 调用自定义函数的时候print没有打印出输入的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)