1、ansible安装
2、修改配置文件 /etc/ansible/ansible.cfg
(1) 添加管理对象的ip地址和组名称
(2) 修改 host_key_checking = False
3、单台机器管理,可以通过 -k 输入账号密码管理
4、基于key验证
(1) ssh-keygen
(2) ssh-copy-id xxx.xxx.xxx.xxx,逐台机器拷贝Key过去
5、ansibel all - m ping
6、ansible-galaxy install geerlinggui.mysql ,下载管理mysql的角色,即一堆yml的集合
常用模块:
1、Shell模块:执行shell命令;修改默认模块,修改ansible.cfg的module_name = shell
2、Script模块:将ansible主机的脚本拷贝到远程主机的.ansible/tmp 目录下执行,执行完毕就将脚本删除;
3、Copy模块:从ansible主机拷贝文件到远程主机
4、Fetch模块:从远程主机拷贝文件到ansible主机
5、File模块:设置文件属性,创建空文件、创建目录、创建软链接
6、unarchive模块:解压缩,远程-》本地,或者 本地-》远程
7、Archive模块:压缩
8、Hostname模块:管理主机名
9、Cron模块:创建和管理计划任务,类似windows操作系统计划任务
10、Yum模块:安装和卸载,支持Rhel ,Centos
11、Service模块:管理服务
12、User模块:管理用户
13、Lineinfile模块:相当于sed,可以修改文件内容
14、Replace模块:类似sed,基于正则进行匹配和替换
15、Setup模块:收集主机的信息;如果主机比较多,收集全部信息比较慢;在playbook中可以配置 gather_facts:no 来禁止收集facts信息(一般用不上的系统信息);
Playbook:
1、YAML语言:用来保存各种配置文件
2、Hosts组件:要执行任务的主机
3、Remote_user组件:执行任务的用户账号
4、Task组件:任务内容
5、命令:
(1) -c --check
(2) --list-hosts
(3) --list-tags
(4) --list-tasks
(5) --limit 主机列表
(6) -v -vv -vvv 显示
6、notify:触发事件感知,handlers:触发后,执行的动作;
7、tags:给其中一个task动作设定标签,可以只执行标签动作;
8、变量:用{ 变量名} 调用
(1) 调用setup模块中的变量
(2) 在playbook中定义变量
(3) 在playbook文件中定义变量
(4) 使用变量文件
(5) 主机清单文件hosts 中定义变量
9、template模块:将playbook做成模块,为了复用
10、roles角色:层次性、结构化的使用playbook,设定某个角色如mysql,分开各种目录存放相应的playbook