为了账号安全,请及时绑定邮箱和手机立即绑定

python自动化运维篇

七寸法师 Python工程师
难度入门
时长 5小时39分
学习人数
综合评分8.50
18人评价 查看评价
9.2 内容实用
8.0 简洁易懂
8.3 逻辑清晰
  • Ansible优点

    查看全部
  • 代码块2.0

    查看全部
  • 代码块1.0

    查看全部
  • Python运维
    查看全部
  • baocun
    查看全部
  • 自动化运维工具

    1、部署类:jenkins

    2、环境类:ansible

    3、监控类:nagios

    主要函数讲解:

    os.system

      功能:执行命令

      返回:命令的返回值

      补充:命令的输出会输出到标准输出

    raw_input()

      功能:暂停程序运行,等待用户输入

      返回:用户输入的内容

    查看全部

  • ansible 默认按这个位置找配置路径:(具有优先级)


    查看全部
  • Ansible的优势:无客户端,推送式,第三方模块特别多

    查看全部
  • Ansible的功能:系统环境配置,安装软件,持续集成,热回滚


    查看全部

  • Ansible 自动化管理IT资源工具

    查看全部
  • 1、安装salt-api、

    [root@cenots7 salt]# yum -y install salt-api

    2、添加调用api用户、

    [root@cenots7 salt]# useradd -M test && echo test | passwd test --stdin

    3、生成加密证书、

    [root@cenots7 salt]# salt-call --local tls.create_self_signed_cert

    'tls' __virtual__ returned False: ['PyOpenSSL version 0.10 or later must be installed before this module can be used.']

    报错了、

    4、根据报错安装PyOpenSSL、

    4.1 将pip源指向阿里云、

    [root@cenots7 salt]# cat /etc/pip.conf 

    [global]

    index-url = https://mirrors.aliyun.com/pypi/simple/


    [install]

    trusted-host=mirrors.aliyun.com

    4.2、安装PyOpenSSL

    [root@cenots7 salt]# pip install PyOpenSSL

    ----省略输出----

    Successfully installed PyOpenSSL-19.0.0 asn1crypto-0.24.0 cffi-1.12.2 cryptography-2.6.1

    5、修改配置文件、

    [root@cenots7 salt]# tail -15 /etc/salt/master

    #####      Returner settings          ######

    ############################################

    # Which returner(s) will be used for minion's result:

    #return: mysql

    rest_cherrypy:

        port: 8000

        debug: True

        ssl_crt: /etc/pki/tls/certs/localhost.crt

        ssl_key: /etc/pki/tls/certs/localhost.key

    external_auth:

        pam:

            test:

                - .*

                - '@whell'

                - '@runner'

    6、重启下salt-master和salt-api

    [root@cenots7 salt]# systemctl restart salt-master salt-api

    [root@cenots7 salt]# ps -ef | grep api

    root      38644      1 22 23:52 ?        00:00:00 /usr/bin/python /usr/bin/salt-api

    root      38653  38644  9 23:52 ?        00:00:00 /usr/bin/python /usr/bin/salt-api

    root      38760   9267  0 23:52 pts/1    00:00:00 grep --color=auto api

    [root@cenots7 salt]# netstat -anp | grep :8000

    tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      38653/python        

    tcp        0      0 127.0.0.1:39240         127.0.0.1:8000          TIME_WAIT   -                   

    tcp        0      0 127.0.0.1:39242         127.0.0.1:8000          TIME_WAIT   -                   

    tcp        0      0 127.0.0.1:39248         127.0.0.1:8000          TIME_WAIT   - 

    7、编写获取api token的脚本、和使用api的脚本、

    更多帮助信息查看:/usr/lib/python2.7/site-packages/salt/netapi/rest_cherrypy/app.py

    [root@cenots7 salt]# cat login_api.sh 

    curl -sSk https://localhost:8000/login \

    -H 'Accept: application/x-yaml' \

    -d username=test \

    -d password=test \

    -d eauth=pam

    [root@cenots7 salt]# cat use_api.sh 

    curl -sSk https://localhost:8000 \

        -H 'Accept: application/x-yaml' \

        -H "X-Auth-Token: $1"\

        -d client=local \

        -d tgt='*' \

        -d fun=test.ping

    8、获取api token、

    [root@cenots7 salt]# sh login_api.sh 

    return:

    - eauth: pam

      expire: 1553488982.633511

      perms:

      - .*

      - '@whell'

      - '@runner'

      start: 1553445782.633511

      token: 059a295bef677e06ee173bc79c4f38450f65e06e

      user: test

    9、通过获取的token调用api、

    [root@cenots7 salt]# sh use_api.sh 059a295bef677e06ee173bc79c4f38450f65e06e

    return:

    - minion103: true

      minion104: true


    查看全部
  • 1、自定义一个模块重命名的文件、

    [root@cenots7 salt]# cat /srv/salt/_modules/test.py 

    __virtualname__ = 'hello'


    def __virtual__():

        return __virtualname__


    def test():

        return 'hello world, this is test custom modules'


    2、修改自定义模块后要记得同步、

    [root@cenots7 salt]# salt '*103' saltutil.sync_modules

    minion103:

        - modules.test

    3、调用自定义模块、

    [root@cenots7 salt]# salt '*103' test.test

    minion103:

        Module 'test' is not available.

    ERROR: Minions returned with non-zero exit code

    [root@cenots7 salt]# salt '*103' hello

    minion103:

        Module 'hello' is not available.

    ERROR: Minions returned with non-zero exit code

    [root@cenots7 salt]# salt '*103' test.hello

    minion103:

        Module 'test' is not available.

    ERROR: Minions returned with non-zero exit code

    [root@cenots7 salt]# salt '*103' hello.test

    minion103:

        hello world, this is test custom modules


    查看全部
  • 1、修改/etc/salt/master中module_dirs、指向/srv/salt/_module、如下:

    module_dirs:

      - /srv/salt/_modules

    2、创建/srv/salt/_modules/

    [root@cenots7 salt]# mkdir -p /srv/salt/_modules/

    3、编写自定义模块、

    [root@cenots7 salt]# cat /srv/salt/_modules/temp.py

    #!/usr/bin/env python

    # -*- encoding: utf8 -*-

    def test():

        print "hello world"

        return "how do you do"

    4、将模块同步到minion、

    [root@cenots7 salt]# salt '*' saltutil.sync_modules

    minion103:

        - modules.temp

    minion104:

        - modules.temp

    5、调用自定义的模块、

    [root@cenots7 salt]# salt '*' temp.test

    minion103:

        how do you do

    minion104:

        how do you do


    查看全部
  • salt 'minion103' sys.doc cmd.run  >>> 查看cmd.run的帮助信息、

    salt 'minion103' sys.list_modules  >>>查看支持所有模块、


    查看全部
  • ansible 与saltstack执行ping命令耗费时间的对比、


    [root@cenots7 ~]# time ansible test -m ping

    10.16.168.104 | SUCCESS => {

        "changed": false, 

        "ping": "pong"

    }

    10.16.168.103 | SUCCESS => {

        "changed": false, 

        "ping": "pong"

    }


    real 0m4.777s

    user 0m2.626s

    sys 0m2.988s

    [root@cenots7 ~]# time salt '*' test.ping

    minion104:

        True

    minion103:

        True


    real 0m0.979s

    user 0m0.577s

    sys 0m0.138s


    查看全部

举报

0/150
提交
取消
课程须知
1、基础的运维知识 2、python的基础知识 3、linux基础知识
老师告诉你能学到什么?
1、什么是自动化运维 2、如何构建自动化运维系统 3、常见自动化运维工具介绍 4、常见自动化运维工具使用 5、常见自动化运维工具高级使用入门 6、python基础知识预习

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!