ansible 简要实用笔记

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 dl.fedoraproject.org/pu
再安装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]. 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