ansible 简要实用笔记
1、ansible简介
作用:ansible用于应用部署和配置管理
特点:基于SSH协议,客户端无需部署
应用场景:
2、ansible架构和工作原理
2.1 架构组成:ansible核心、ansible模块、ansible-playbook(剧本)、host inventry(主机清单)等
2.2 工作原理:
- 单个模块,单个命令执行方式;
- 剧本执行方式
3、ansible安装和配置及命令
3.1 yum安装:
先安装epel源:yum install
http://
dl.fedoraproject.org/pu
b/epel/epel-release-latest-6.noarch.rpm
再安装ansible:yum install ansible
3.2 配置文件
定义远控主机文件:/etc/ansible/hosts
定义ansible配置文件:/etc/ansible/ansible.cfg,打开该选项host_key_checking = False,可以避免首次登陆提示需要输入yes/no
3.3 主要命令
单条执行命令:ansible 定义远控主机组 -m 模块名 -a 参数
ansible xibu -m
剧本模式:ansible-playbook
4、ansible inventory定义
*静态定义文件在/etc/ansible/hosts:
[webserver]
192.168.0.1:5000 #设定5000端口
大智慧-炒股软件平台
www[1:5].
http://
bb.com
#批量设定5台主机
*部分变量ansible_ssh_host,ansible_ssh_port=,ansible_ssh_pass='password'
*组内变量及组的包含(主要用于ansible-playbook)
[webserver:vars] #组变量
proxy=sfsdf
new=ss
[webserver:children] #组包含
group1
group2
[webserver:vars]
*模式
ansible 组1:组2 ,2组内容都有;
ansible 组1:!组2 ,在组1内但排除组2内的;
ansible 组1:&组2 ,两组的交际;
ansible 192.168.1.* ,所有
ansible ~(web|db),已web或者db开头的;
*Dynamic inventory调用方法
ansible -i 定义列表内容 组名
5、ansible模块
*用法-m 模块名 -a 参数,如command,user,group,file,copy,ping,setup,service,cron,synchronize,mount,get_url等,如默认不写为command
列子:ansible -B 3600 huafu -a uptime #后台执行3600秒
*模块:shell 和 command 区别在于shell 可以跟管道符
*模块:script 把本机脚本上传到远端并执行。
如脚本内容:cd /tmp && touch dzh.`date +%Y%m%d`
*模块:setup取得主机信息,-m setup -a 'filter=ansible_*_m' # 获取内存信息
-m setup --tree /temp/result #获取主机信息至本地
6、ansible-play
- name: create user
hosts: "{{host}}"
user: root