一、 自我介绍 1min:做过互联网云计算、网络游戏等的运维,有多年的运维经验
二、 介绍传统运维的痛处和ansible的优势 5min
三、 安装ansible 2min
四、 配置主机密钥配对:2min
用ssh-keygen生成key,把公钥拷贝到对方的.ssh目录下authorized_keys文件中
把本机生成的id_rsa.pub存到authorized_keys中。命令:cat id_rsa.pub > authorized_keys
五、 配置ansible的inventory:1min
a) 介绍ansible的inventory作用:没有在inventory中注册的服务器是无法连接的,要在/etc/ansible/hosts文件中添加主机
b) 主机分为group和hosts,格式为
[group]
Hosts [ansible_ssh_pass=123456 ansible_ssh_user=root]
如果主机信任没有配好的话,可以在这里先暂时配置密码,不过不建议这么做,因为不安全
c) 执行ansible localhost –m ping 测试
六、 介绍playbook:4min
a) Playbook使用yaml语言编写,刚才执行的ping只是一个模块,要有很多个模块组合执行任务的时候,需要playbook来指导
b) Yaml可以理解为python的字典形式,使用
- hosts:localhost
vars:
http_port: 80
max_clients: 200
类似于python的字典,可以理解为{‘host’:’localhost’,’vars’:{‘http_port’:’80,’max_clients’:’200’}}
c) Playbook示例:介绍一个playbook
七、 边写边讲一个playbook:包括变量、条件判断、循环语句 10min
如2安装oracle并执行试试
八、 Python操作ansible
a) 提示:ansible仅支持在linux下开发,在windows可以通过安装Cygwin来模拟unix环境,https://cygwin.com/install.html
首先建立工程
建立虚拟环境
Pip install ansible
Namedtuple是建立一个nametuplede类对象,然后在其中按照你的定义建立类的属性,比如
from collections import namedtuple
#创建一个nametuplede 类,类名称为Person,并赋给变量P
P = namedtuple(‘Person‘, ‘name,age,gender‘)
print(‘Type of Person:‘, type(P)) # Type of Person: <class ‘type‘>
jane = P(name=‘Jane‘, age=29, gender=‘female‘)
print(‘\nField by name:‘, jane.name) # Field by name: Jane