一 批量初始化服务器
需求: 批量'初始化服务器'案例
① 需求拆解
重点: 学习'模块'的语法、组织'编排'
② 讲解思路
说明: 先'拆分',然后以ansible的'组合'形式来实现
备注: 通过'案例'学习相关'知识点'
③ 测试节点准备
二 ansible配置SSH密钥认证
① 分析
② shell脚本形式
③ 改写为playbook
说明: 上面的'命令行 '改写为'playbook' 文件形式
④ 理解inventory_hostname变量
inventory_hostname'内置'变量: 当前正在执行任务的'目标节点'在inventory中定义的'主机名'
⑤ command、shell、raw、script模块
注意: 执行'shell命令'各个模块的'特殊'之处
备注: ansible '默认' 就是使用'command'模块,推荐使用'shell'模块
思考: ansible在'被控制主机'没安装'python环境'时能使用'什么'模块?
+++++++++++++ "案例理解" +++++++++++++
⑥ 命令行多行]
实质: 使用'yaml'的'|'高级语法
⑦ 使用script模块
说明: 并'没有'讲解'script'模块的语法,而是以'应用场景'的角度讲解
script模块'特点':可以'批量'让所有'被管理的机器'执行脚,且该脚本'不需要'在客户端上'存在'
思考: script模块'脚本'默认运行的'目录'? 是否可以'自定义'目录?
二 幂等性探究
前提: command、shell、raw、script '模块'
关注: 哪些模块具备'幂等性'? 重复执行是否有'负作用'?
① 测试样例
② 执行脚本的解释器
前提: command、shell、raw、script '模块'
场景: python、java、perl、lua '等'
说明: 解释器必须是'远程被控制节点'上'已有'的
python 环境的'版本'
vars:
ansible_python_interpreter: /usr/bin/python