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

python自动化运维篇

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

    修改SSH配置文件                                                               (主从配置)

    vi /etc/ssh/sshd_config

    开放四个配置                                                                      (主从配置)

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys

    PermitRootLogin yes

    重启服务

    配置项

    cd ~/.ssh

    ssh-keygen -t rsa

    cat id_rsa.pub----公钥内容

    :添加目标节点的SSH认证信息


    #ssh-copy-id root@目标节点IP

    把产生的公钥复制到从节点的authorized_keys

    vim ~/.ssh/authorized_keys


    查看全部
  •    检查项

    修改SSH配置文件                                                               (主从配置)

    vi /etc/ssh/sshd_config

    开放四个配置                                                                      (主从配置)

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys

    PermitRootLogin yes

    重启服务

    配置项

    cd ~/.ssh

    ssh-keygen -t rsa

    cat id_rsa.pub----公钥内容

    :添加目标节点的SSH认证信息


    #ssh-copy-id root@目标节点IP

    把产生的公钥复制到从节点的authorized_keys

    vim ~/.ssh/authorized_keys




    ansible的安装


    这里的安装环境是centos7.5版本操作系统,首先需要安装第三方epel源:


    [root@ACA8D5EF ~]# yum install epel-release

    Ansible依赖python环境,同时,Ansible已经是RHEL/Centos的一个组成部分,因此推荐通过yum安装ansible:


    [root@ACA8D5EF ~]# yum install ansible




    检查是否安装正确

    ansible sa -m ping



    ansible主机和组的配置

    3.1、简单的主机和组


    ansible的配置文件位于/etc/ansible目录下,主要有ansible.cfg、hosts文件。本节重点介绍主机与组定义文件/etc/ansible/hosts.


    /etc/ansible/hosts最简单的格式如下:


    www.ixdba.net

    [webservers]

    ixdba1.net

    ixdba2.net 


    [dbservers]

    db.ixdba1.net

    db.ixdba2.net

    中括号中的名字代表组名,可以根据需求将庞大的主机分成具有标识的组,如上面分了两个组webservers和dbservers组;


    主机(hosts)部分可以使用域名、主机名、IP地址表示;当然使用前两者时,也需要主机能反解析到相应的IP地址,一般此类配置中多使用IP地址;


    未分组的机器需保留在hosts的顶部。


    3.2、指定主机范围


    可在/etc/ansible/hosts文件中,指定主机的范围,示例如下:


    [web]

    www[01:50].ixdba.net

    [db]

    db[a:f].ixdba.net

    3.3、主机变量


    以下是Hosts部分中经常用到的变量部分:


    ansible_ssh_host #用于指定被管理的主机的真实IP

    ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22

    ansible_ssh_user #ssh连接时默认使用的用户名

    ansible_ssh_pass #ssh连接时的密码

    ansible_sudo_pass #使用sudo连接用户时的密码

    ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径

    ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项

    ansible_shell_type #目标系统的shell的类型,默认sh

    ansible_connection #SSH 连接的类型:local , ssh , paramiko,在 ansible1.2之前默认是 paramiko ,后来智能选择,优先使用基于ControlPersist 的ssh

    ansible_pythoninterpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl的路径

    ansible_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里””可以是ruby或perl等其它语言


    例子1:


    [web]

        192.168.78.11 http_port=80

        192.168.78.12 http_port=80

    还可以改成这样:


    [web]

        192.168.78.11

        192.168.78.12

    [web:vars]

        http_port=80

    例子2:


    [webhost]

    host1

    host2


    [dbhost]

    host2

    host3


    [allhosts:children]

    webhost

    Dbhost

    主机组可以包含主机组,主机的变量可以通过继承关系,继承到最高等级的组的变量。定义主机组之间的继承关系我们使用”:children”来表示.


    四、 ansible.cfg与默认配置

    /etc/ansible/ansible.cfg文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。


    #inventory = /etc/ansible/hosts 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表


    #library = /usr/share/my_modules/ Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录


    #module_utils = /usr/share/my_module_utils/


    #remote_tmp = ~/.ansible/tmp 指定远程执行的路径


    #local_tmp = ~/.ansible/tmp ansible管理节点的执行路径


    #forks = 5 forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。


    #poll_interval = 15 轮询间隔


    #sudo_user = root sudo使用的默认用户 ,默认是root


    #ask_sudo_pass = True 是否需要用户输入sudo密码


    #ask_pass = True 是否需要用户输入连接密码


    #remote_port = 22 这是指定连接对端节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的


    #module_lang = C 这是默认模块和系统之间通信的计算机语言,默认为’C’语言.

    host_key_checking = False 跳过ssh首次连接提示验证部分,False表示跳过。


    #timeout = 10 连接超时时间


    #module_name = command 指定ansible默认的执行模块


    #nocolor = 1 默认ansible会为输出结果加上颜色,用来更好的区分状态信息和失败信息.如果你想关闭这一功能,可以把’nocolor’设置为‘1’:


    #private_key_file=/path/to/file.pem 在使用ssh公钥私钥登录系统时候,使用的密钥路径


    查看全部
  •    检查项

    修改SSH配置文件                                                               (主从配置)

    vi /etc/ssh/sshd_config

    开放四个配置                                                                      (主从配置)

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys

    PermitRootLogin yes

    重启服务

    配置项

    cd ~/.ssh

    ssh-keygen -t rsa

    cat id_rsa.pub----公钥内容

    :添加目标节点的SSH认证信息


    #ssh-copy-id root@目标节点IP

    把产生的公钥复制到从节点的authorized_keys

    vim ~/.ssh/authorized_keys




    ansible的安装


    这里的安装环境是centos7.5版本操作系统,首先需要安装第三方epel源:


    [root@ACA8D5EF ~]# yum install epel-release

    Ansible依赖python环境,同时,Ansible已经是RHEL/Centos的一个组成部分,因此推荐通过yum安装ansible:


    [root@ACA8D5EF ~]# yum install ansible




    检查是否安装正确

    ansible sa -m ping



    ansible主机和组的配置

    3.1、简单的主机和组


    ansible的配置文件位于/etc/ansible目录下,主要有ansible.cfg、hosts文件。本节重点介绍主机与组定义文件/etc/ansible/hosts.


    /etc/ansible/hosts最简单的格式如下:


    www.ixdba.net

    [webservers]

    ixdba1.net

    ixdba2.net 


    [dbservers]

    db.ixdba1.net

    db.ixdba2.net

    中括号中的名字代表组名,可以根据需求将庞大的主机分成具有标识的组,如上面分了两个组webservers和dbservers组;


    主机(hosts)部分可以使用域名、主机名、IP地址表示;当然使用前两者时,也需要主机能反解析到相应的IP地址,一般此类配置中多使用IP地址;


    未分组的机器需保留在hosts的顶部。


    3.2、指定主机范围


    可在/etc/ansible/hosts文件中,指定主机的范围,示例如下:


    [web]

    www[01:50].ixdba.net

    [db]

    db[a:f].ixdba.net

    3.3、主机变量


    以下是Hosts部分中经常用到的变量部分:


    ansible_ssh_host #用于指定被管理的主机的真实IP

    ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22

    ansible_ssh_user #ssh连接时默认使用的用户名

    ansible_ssh_pass #ssh连接时的密码

    ansible_sudo_pass #使用sudo连接用户时的密码

    ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径

    ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项

    ansible_shell_type #目标系统的shell的类型,默认sh

    ansible_connection #SSH 连接的类型:local , ssh , paramiko,在 ansible1.2之前默认是 paramiko ,后来智能选择,优先使用基于ControlPersist 的ssh

    ansible_pythoninterpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl的路径

    ansible_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里””可以是ruby或perl等其它语言


    例子1:


    [web]

        192.168.78.11 http_port=80

        192.168.78.12 http_port=80

    还可以改成这样:


    [web]

        192.168.78.11

        192.168.78.12

    [web:vars]

        http_port=80

    例子2:


    [webhost]

    host1

    host2


    [dbhost]

    host2

    host3


    [allhosts:children]

    webhost

    Dbhost

    主机组可以包含主机组,主机的变量可以通过继承关系,继承到最高等级的组的变量。定义主机组之间的继承关系我们使用”:children”来表示.


    四、 ansible.cfg与默认配置

    /etc/ansible/ansible.cfg文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。


    #inventory = /etc/ansible/hosts 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表


    #library = /usr/share/my_modules/ Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录


    #module_utils = /usr/share/my_module_utils/


    #remote_tmp = ~/.ansible/tmp 指定远程执行的路径


    #local_tmp = ~/.ansible/tmp ansible管理节点的执行路径


    #forks = 5 forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。


    #poll_interval = 15 轮询间隔


    #sudo_user = root sudo使用的默认用户 ,默认是root


    #ask_sudo_pass = True 是否需要用户输入sudo密码


    #ask_pass = True 是否需要用户输入连接密码


    #remote_port = 22 这是指定连接对端节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的


    #module_lang = C 这是默认模块和系统之间通信的计算机语言,默认为’C’语言.

    host_key_checking = False 跳过ssh首次连接提示验证部分,False表示跳过。


    #timeout = 10 连接超时时间


    #module_name = command 指定ansible默认的执行模块


    #nocolor = 1 默认ansible会为输出结果加上颜色,用来更好的区分状态信息和失败信息.如果你想关闭这一功能,可以把’nocolor’设置为‘1’:


    #private_key_file=/path/to/file.pem 在使用ssh公钥私钥登录系统时候,使用的密钥路径


    查看全部
  •    检查项

    修改SSH配置文件                                                               (主从配置)

    vi /etc/ssh/sshd_config

    开放四个配置                                                                      (主从配置)

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys

    PermitRootLogin yes

    重启服务

    配置项

    cd ~/.ssh

    ssh-keygen -t rsa

    cat id_rsa.pub----公钥内容

    :添加目标节点的SSH认证信息


    #ssh-copy-id root@目标节点IP

    把产生的公钥复制到从节点的authorized_keys

    vim ~/.ssh/authorized_keys




    ansible的安装


    这里的安装环境是centos7.5版本操作系统,首先需要安装第三方epel源:


    [root@ACA8D5EF ~]# yum install epel-release

    Ansible依赖python环境,同时,Ansible已经是RHEL/Centos的一个组成部分,因此推荐通过yum安装ansible:


    [root@ACA8D5EF ~]# yum install ansible




    检查是否安装正确

    ansible sa -m ping



    ansible主机和组的配置

    3.1、简单的主机和组


    ansible的配置文件位于/etc/ansible目录下,主要有ansible.cfg、hosts文件。本节重点介绍主机与组定义文件/etc/ansible/hosts.


    /etc/ansible/hosts最简单的格式如下:


    www.ixdba.net

    [webservers]

    ixdba1.net

    ixdba2.net 


    [dbservers]

    db.ixdba1.net

    db.ixdba2.net

    中括号中的名字代表组名,可以根据需求将庞大的主机分成具有标识的组,如上面分了两个组webservers和dbservers组;


    主机(hosts)部分可以使用域名、主机名、IP地址表示;当然使用前两者时,也需要主机能反解析到相应的IP地址,一般此类配置中多使用IP地址;


    未分组的机器需保留在hosts的顶部。


    3.2、指定主机范围


    可在/etc/ansible/hosts文件中,指定主机的范围,示例如下:


    [web]

    www[01:50].ixdba.net

    [db]

    db[a:f].ixdba.net

    3.3、主机变量


    以下是Hosts部分中经常用到的变量部分:


    ansible_ssh_host #用于指定被管理的主机的真实IP

    ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22

    ansible_ssh_user #ssh连接时默认使用的用户名

    ansible_ssh_pass #ssh连接时的密码

    ansible_sudo_pass #使用sudo连接用户时的密码

    ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径

    ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项

    ansible_shell_type #目标系统的shell的类型,默认sh

    ansible_connection #SSH 连接的类型:local , ssh , paramiko,在 ansible1.2之前默认是 paramiko ,后来智能选择,优先使用基于ControlPersist 的ssh

    ansible_pythoninterpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl的路径

    ansible_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里””可以是ruby或perl等其它语言


    例子1:


    [web]

        192.168.78.11 http_port=80

        192.168.78.12 http_port=80

    还可以改成这样:


    [web]

        192.168.78.11

        192.168.78.12

    [web:vars]

        http_port=80

    例子2:


    [webhost]

    host1

    host2


    [dbhost]

    host2

    host3


    [allhosts:children]

    webhost

    Dbhost

    主机组可以包含主机组,主机的变量可以通过继承关系,继承到最高等级的组的变量。定义主机组之间的继承关系我们使用”:children”来表示.


    四、 ansible.cfg与默认配置

    /etc/ansible/ansible.cfg文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。


    #inventory = /etc/ansible/hosts 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表


    #library = /usr/share/my_modules/ Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录


    #module_utils = /usr/share/my_module_utils/


    #remote_tmp = ~/.ansible/tmp 指定远程执行的路径


    #local_tmp = ~/.ansible/tmp ansible管理节点的执行路径


    #forks = 5 forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。


    #poll_interval = 15 轮询间隔


    #sudo_user = root sudo使用的默认用户 ,默认是root


    #ask_sudo_pass = True 是否需要用户输入sudo密码


    #ask_pass = True 是否需要用户输入连接密码


    #remote_port = 22 这是指定连接对端节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的


    #module_lang = C 这是默认模块和系统之间通信的计算机语言,默认为’C’语言.

    host_key_checking = False 跳过ssh首次连接提示验证部分,False表示跳过。


    #timeout = 10 连接超时时间


    #module_name = command 指定ansible默认的执行模块


    #nocolor = 1 默认ansible会为输出结果加上颜色,用来更好的区分状态信息和失败信息.如果你想关闭这一功能,可以把’nocolor’设置为‘1’:


    #private_key_file=/path/to/file.pem 在使用ssh公钥私钥登录系统时候,使用的密钥路径


    查看全部
  • 调用ansible模块

    http://img1.sycdn.imooc.com//5e929c120001ceaa08340408.jpg

    查看全部
  • runner

    http://img1.sycdn.imooc.com//5e929bca0001032908990396.jpg

    查看全部
  • 密码设置文件

    http://img1.sycdn.imooc.com//5e9296720001b2b109490426.jpg

    查看全部
  • 开启的线程数

    http://img1.sycdn.imooc.com//5e9296080001f7d211080434.jpg

    查看全部
  • ansible插件

    http://img1.sycdn.imooc.com//5e9295b0000160cd11000550.jpg

    查看全部
  • SaltStack概念

    1、一个配置管理系统,能够维护预定义状态的远程节点

    2、一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。


    查看全部
  • 调用Ansible2.0(及以后版本)API

    1、定义一个结果对象

    2、初始化Ansible节点对象

    3、初始化结果对象

    4、创建一个任务

    5、运行ansible节点


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

    查看全部
  • 总结

    1、运维发展的不同阶段

    2、Python适合运维自动化运维的原因

    3、学以致用,编写一个脚本

    4、注重基础


    查看全部
  • 运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性的策略,目的就是实现IT运维的质量,降低成本

    自动化运维工具

    部署类:jenkins

    环境类:ansible

    监控类:ngios


    查看全部
  • Ansible配置文件路径

    查看全部

举报

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

微信扫码,参与3人拼团

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

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