ansible实用干货笔记
本人的使用笔记,后续会持续更新
1.首先从ansible主机清单开始
主机清单默认保存位置:/etc/ansible/
[root@HB-ZX-DB01 playbook]# ls /etc/ansible/
ansible.cfg hosts hosts2.bak hosts.bak roles
ansible.cfg:ansible配置文件
hosts:主机清单
[root@HB-ZX-DB01 playbook]# vim /etc/ansible/hosts
[atlanta]
host1
host2
[raleigh]
host2
host3
[southeast:children]
atlanta
raleigh
[southeast:vars]
some_server=foo.southeast.example.com
halon_system_timeout=30
self_destruct_countdown=60
escape_pods=2
ansible_ssh_user=root
ansible_ssh_pass='123456'
ansible_ssh_port=2345
[usa:children]
southeast
northeast
southwest
northwest
:children 是将多个主机组包含到一个组中,形成一个主机组的嵌套
:vars 是给指定的组指定变量,如:连接主机的ssh prot,host,password等,如果主机组中的密码不一致的话可以单独加到不同密码的主机后以空格分隔多个变量
2.ansible命令
ansible-playbook -h :查看帮助
ansible-playbook install.yml :通过playbook方式批量部署
ansible-playbook -i /root/hosts install.yml :自定义主机清单来运行playbook,默认使用/etc/ansible/hosts主机清单
ansible-playbook -C install.yml :预运行playbook,并不会对远程主机进行修改,主要用于测试playbook和主机清单是否有问题
3.playbook
[root@HB-ZX-DB01 playbook]# vim portal_modules_bak.yml
---
- hosts: portal1
tasks:
- name: create directory
file: path=/home/BO_backup state=directory
- name: push script
copy:
src: /usr/local/playbook/mvfile.sh
dest: /root/
mode: u+x
- name: backup files
shell: sh /root/mvfile.sh
playbook就是通过YMAL语言格式编辑文本使用ansible的各个模块来完成一系列的部署操作
ansible常用的模块:
file模块:用来创建文件或目录
copy模块:用来把本地文件批量传输到多台服务器上
yum模块:用来在远程机器上安装软件包
user模块:用来管理远程主机上的用户
service模块:管理远程主机上的服务
script模块:执行本地脚本,不用传输到远端,执行结果会作用于远端服务器
shell模块:在远程主机上执行shell命令
command模块:在远程主机上执行shell命令,和shell模块的区别是不支持元字符和通配符
cron模块:在远程主机上指定定时任务