ansible批量部署全局命令如何实现
刚接触ansible,学习了文档,有以下问题希望能解决:
需要将一批可执行文件发布到各个服务器上,然后执行启动命令(eg: start_exe)将其启动;
这个部署过程如何使用ansible来完成?
我有两个问题:
对以下场景使用ansible的通用方式是什么?
通过ansible将多个可执行文件复制到目标服务器,是多次调用copy模块?
还是将其打包成一个文件,然后调用copy模块发布到远端后再解析?
可执行文件发布到目标服务器后,需要掉启动命令将其启动;这个启动命令是放在一个全局path中的,一般在.bash_profile中设置了环境变量,登录ssh可以识别;现在通过ansible的command模块或者shell模块因为没有加载环境变量,无法识别到这个全局命令;
请问如何实现?
把ansible的所有模块都浏览了一遍,找到了个人认为比较合适的解决方案:
对于第一个问题,可以先在本地打包,然后使用copy模块发布到目标服务器,再调用一个解包命令解包即可:
rm transfer.tar
tar cvf transfer.tar svr1 svr2
ansible mywebs -m copy -a "src=/opt/app/bin/transfer.tar dest=~/"
ansible mywebs -m shell -a "tar xvf ~/transfer.tar"
也可以在本地打包后,使用unarchive模块直接将本地的tar文件解压到目标服务器上(省掉了后续再调用解析的脚本):
rm transfer.tar
tar cvf transfer.tar svr1 svr2
ansible mywebs -m unarchive -a "src=/opt/app/bin/transfer.tar dest=~/"
对于第二个问题,通过ansible登录后的没有加载自定义的环境变量,那么自行加载就是,在shell模块中可以使用;分割多个语句,于是,可以这么做:
ansible mywebs -m shell -a ". .bash_profile;start_my_server"
如果在目标机器上要执行的语句比较多,可以将所有语句写成一个脚本,然后通过scripts模块来发布到目标机器上执行:
ansible mywebs -m script -a "/opt/app/target.sh"
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd18751.html
相关文章 Recommend
- • 环境部署问题,python web应用可以在代码中判断de
- • Python离线部署安装包问题
- • Python sqlalchemy批量数据插入优化注意事项有哪些
- • 支持url批量发post请求的python工具是什么?
- • Python for循环中用循环变量批量创建函数功能实现
- • Python部署方式最好用的是哪几种
- • 用nginx+uwsgi+python+flask/django部署3个web,使用super
- • python fabric批量管理多台server执行方法问题
- • python批量抓取二级域名标题的方法
- • SAE saecloud程序怎么开启
- • 请问Python与PHP在部署web文件操作上有什么不同
- • 如何优化python mongodb批量修改任务
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问