一、ansible的作用以及工作结构

1.1、ansible简介:

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

  • 连接插件connection plugins:负责和被监控端实现通信;
  • host inventory:指定操作的主机,是一个配置文件,里面定义监控的主机;
  • 各种模块核心模块、command模块、自定义模块;
  • 借助于插件完成记录日志邮件等功能;
  • playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

1.2、ansible的架构:

连接其他主机默认使用ssh协议!

 

二、ansible基本概念

2.1ansible安装

使用yum源的方式安装ansible,安装ansible需要epel源,我配置了ali的epel源和centos7镜像源,yum配置如下:

# pwd
/etc/yum.repos.d
 
# cat aliBase.repo
[aliBase]
name=aliBase
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=
gpgcheck=
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
 
# cat aliEpel.repo
[aliEpel]
name=aliEpel
baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/
enabled=
gpgcheck=

安装ansible:

$ yum  -y install ansible 

查看生成的主要配置文件:

$ rpm -ql ansible | head 

查看ansible相关信息:
$ yum info ansible
 

2.2 ansible默认配置清单

如果想要通过ansible管理主机,需要将要管理的主机信息添加到ansible的“配置清单”中,在/etc/ansible/hosts文件,在文件最底部添加主机信息;

node11 ansible_host=10.1.1.60 ansible_port= ansible_user=root ansible_ssh_pass=

node11:给主机启一个别名

ansible_host:受控主机ip

ansible_port:ssh链接端口,根据实际端口填写,可不填写

ansible_user:用于链接对应主机的用户名

ansible_ssh_pass:用于链接对应主机的密码

注意:ansible2.0之前的版本,应该写为:

ansible_ssh_host

ansible_ssh_port

ansible_ssh_user

2.2.1清单配置详情:

(1)全部列表

192.168.1.1
192.168.1.2
192.168.2.1
182.168.2.2

# ansible all -m ping

(2)分组列表

[A]
192.168.1.2
192.168.1.3 [B]
192.168.2.1
192.168.2.2

# ansible A -m ping

# ansible B -m ping

(3)连续ip简写

 192.168.1.1

 192.168.1.2

 192.168..[:]    //连续IP简写

(4)域名解析简写

[A]

dnsver-a.com

dnsver-b.com

dnsver-[a:b].com

(5)组内嵌套

[proA]
192.168.1.1
192.168.1.2 [porB]
192.168.2.1
192.168.2.2 [pro:children]
proA
proB

执行pro组时,会将proA、proB组的主机都执行。

2.3设置免密登录

在ansible主机生成秘钥,并进行相应的配置

首先,生成默认格式的密钥对,私钥与公钥:

# ssh-keygen

然后,将生成的公钥加入到受控主机的认证列表

# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.1.1.60

设置免密登录后,配置清单就可以写简写为:

node11 ansible_host=10.1.1.60 ansible_port=

最新文章

  1. Maya Plugin 编译Maya插件
  2. java并发编程-基础
  3. iOS 图片 的 聊天气泡显示 Objective-C
  4. Spring3系列3 -- JavaConfig
  5. HDU2888 Check Corners
  6. Arduino中的setup()和loop()函数
  7. 为自己的系统定制openstack ceilometer
  8. shell 数组(in_array)
  9. HDU 1874-畅通project续(最短路Dijkstra+优先队列)
  10. sem_timedwait的用法
  11. WASP_百度百科
  12. Facade模式——设计模式学习(转载)
  13. Redis安装和基础介绍
  14. Python开发 文件操作
  15. 小谈UAT(验收测试)
  16. 爆打团队 四则运算 beta视频
  17. 获取验证码随机字符串@return string $captcha,随机验证码文字
  18. Go 内嵌静态资源
  19. Appcan、apicloud、HBuilder 不同之处解析
  20. 服务器上如何再另外添加一个E盘

热门文章

  1. python3.0笔记
  2. fedora18 Cannot retrieve metalink for repository: fedora. Please verify its path and try again 解决方法
  3. 微信小程序、SSL证书、开启服务器TSL1.0、TSL1.1、TSL1.2服务
  4. IIS知识点总结
  5. node.js运行配置(vs code非控制台输出)
  6. 使用 Python 实现多进程
  7. leetcode 111二叉树的最小深度
  8. Docker报错:“WARNING: IPv4 forwarding is disabled. Networking will not work.”解决。
  9. http://blog.csdn.net/sdksdk0/article/details/50749326
  10. GUI_FlowLayout