文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 远程执行代码 fabr

2023-01-31 01:32

关注

 fabric应用:
               1、fab -H 172.23.177.40,172.23.177.41 host_type
               2、fab host_type check_ver
               3、role: 当client较多时可以定义角色,然后按角色进行操作。
                    #!/usr/bin/pyhton
                    from fabric.api import *
                    env.user = 'root'
                    env.password = 'vagrant'
                    env.roledefs = {
                         'web': ['172.23.177.41','172.23.177.43'],
                         'dns': ['172.23.177.46','177.23.177.73']
                    }
                    def test():
                        run('uname -a')
               run:
                    fab -R web test
               result:
                    [172.23.177.41] Executing task 'test'
                    [172.23.177.41] run: uname -a
                    [172.23.177.41] out: Linux salt-master 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
                    [172.23.177.41] out:
                    [172.23.177.43] Executing task 'test'
                    [172.23.177.43] run: uname -a
                    [172.23.177.43] out: Linux salt-minion-3 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
                    [172.23.177.43] out:
                    Done.
                    Disconnecting from 172.23.177.43... done.
                    Disconnecting from 172.23.177.41... done.
                    #从结果可以看到,fab只执行了属于web组的client。
               4、extend属性
                    from fabric.api import env, run
                    env.hosts.extend(['host3', 'host4'])
                    def test():
                        run('uname -r')
                    When this fabfile is run as fab -H host1,host2 mytask, env.hosts will then contain ['host1', 'host2', 'host3', 'host4'] at the time that mytask is executed.
               5、fabfile中没有定义client,可以在命令行中指定
                    fab mytask:hosts='172.23.177.41;172.23.177.46'
               6、使用task方式:
                    from fabric.api import hosts, run
                    @hosts('172.23.177.41', '172.23.188.46')
                    def test():
                        run('uname -r')
                    或者:
                    my_hosts = ('172.23.177.41', '172.23.177.46')
                    @hosts(my_hosts)
                    def test():
                         run('uname -r')
               run:
                    fab test
               resule: 从结果中可以看到,fab只执行了task定义的test部分
                    [172.23.177.41] Executing task 'test'
                    [172.23.177.41] run: uname -a
                    [172.23.177.41] out: Linux salt-master 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
                    [172.23.177.41] out:
                    [172.23.177.46] Executing task 'test'
                    [172.23.177.46] run: uname -a
                    [172.23.177.46] out: Linux salt-minion-1 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
                    [172.23.177.46] out:
                    Done.
                    Disconnecting from 172.23.177.41... done.
                    Disconnecting from 172.23.177.46... done.
               7、综合应用:
                    from fabric.api import env, hosts, roles, run
                    env.roledefs = {'role1': ['b', 'c']}
                    @hosts('a', 'b')
                    @roles('role1')
                    def test():
                        run('uname -r')
               8、遇到主机不可达的情况,可以使用--skip-bad-hosts参数,这样就会跳过不存在或有问题的client,而执行其他的client,从返回结果中可以排除那些是有问题的client,进而在进行处理
                    fab --skip-bad-hosts test
                    node:
                    my_hosts = ('172.23.177.41','172.23.177.40','172.23.177.46')
                    @hosts(my_hosts)
                    def test():
                        run('uname -a')


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯