Ansible与其他软件对比
Ansible是什么:是一个自动管理IT资源的工具
系统环境配置:给机器发安装脚本,配置环境变量
安装软件
持续集成:完成自动化部署的工作
热回滚
Ansible优点
无客户端:基于ssh服务的,控制端装一个就可以了
推送式:区别于拉取式
丰富的module:一万多个,基本覆盖了所有主流的安装脚本,不需要自己去写
基于YAML的Playbook:Playbook定义了执行的规则和顺序,丢到客户机上,根据Playbook做事情。YAML文本语法,类似于xml的
商业化支持:web功能,展示的优美,功能好用稳定性高
Ansible缺点
效率低、易挂起:基于ssh通信做的,串行的
并发性差
Ansible的优点
自动化运维工具对比
ansible缺点
ansible优点
四、 ansible.cfg与默认配置
/etc/ansible/ansible.cfg文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。
#inventory = /etc/ansible/hosts 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表
#library = /usr/share/my_modules/ Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录
#module_utils = /usr/share/my_module_utils/
#remote_tmp = ~/.ansible/tmp 指定远程执行的路径
#local_tmp = ~/.ansible/tmp ansible管理节点的执行路径
#forks = 5 forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。
#poll_interval = 15 轮询间隔
#sudo_user = root sudo使用的默认用户 ,默认是root
#ask_sudo_pass = True 是否需要用户输入sudo密码
#ask_pass = True 是否需要用户输入连接密码
#remote_port = 22 这是指定连接对端节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的
#module_lang = C 这是默认模块和系统之间通信的计算机语言,默认为’C’语言.
host_key_checking = False 跳过ssh首次连接提示验证部分,False表示跳过。
#timeout = 10 连接超时时间
#module_name = command 指定ansible默认的执行模块
#nocolor = 1 默认ansible会为输出结果加上颜色,用来更好的区分状态信息和失败信息.如果你想关闭这一功能,可以把’nocolor’设置为‘1’:
#private_key_file=/path/to/file.pem 在使用ssh公钥私钥登录系统时候,使用的密钥路径
指定主机范围
可在/etc/ansible/hosts文件中,指定主机的范围,示例如下:
[web]
www[01:50].ixdba.net
[db]
db[a:f].ixdba.net
3.3、主机变量
以下是Hosts部分中经常用到的变量部分:
ansible_ssh_host #用于指定被管理的主机的真实IP
ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22
ansible_ssh_user #ssh连接时默认使用的用户名
ansible_ssh_pass #ssh连接时的密码
ansible_sudo_pass #使用sudo连接用户时的密码
ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径
ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项
ansible_shell_type #目标系统的shell的类型,默认sh
ansible_connection #SSH 连接的类型:local , ssh , paramiko,在 ansible1.2之前默认是 paramiko ,后来智能选择,优先使用基于ControlPersist 的ssh
ansible_pythoninterpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl的路径
ansible_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里””可以是ruby或perl等其它语言
例子1:
[web]
192.168.78.11 http_port=80
192.168.78.12 http_port=80
还可以改成这样:
[web]
192.168.78.11
192.168.78.12
[web:vars]
http_port=80
例子2:
[webhost]
host1
host2
[dbhost]
host2
host3
[allhosts:children]
webhost
Dbhost
主机组可以包含主机组,主机的变量可以通过继承关系,继承到最高等级的组的变量。定义主机组之间的继承关系我们使用”:children”来表示
ansible主机和组的配置
3.1、简单的主机和组
ansible的配置文件位于/etc/ansible目录下,主要有ansible.cfg、hosts文件。本节重点介绍主机与组定义文件/etc/ansible/hosts.
/etc/ansible/hosts最简单的格式如下:
www.ixdba.net
[webservers]
ixdba1.net
ixdba2.net
[dbservers]
db.ixdba1.net
db.ixdba2.net
中括号中的名字代表组名,可以根据需求将庞大的主机分成具有标识的组,如上面分了两个组webservers和dbservers组;
主机(hosts)部分可以使用域名、主机名、IP地址表示;当然使用前两者时,也需要主机能反解析到相应的IP地址,一般此类配置中多使用IP地址;
未分组的机器需保留在hosts的顶部。
ansible的安装
这里的安装环境是centos7.5版本操作系统,首先需要安装第三方epel源:
[root@ACA8D5EF ~]# yum install epel-release
Ansible依赖python环境,同时,Ansible已经是RHEL/Centos的一个组成部分,因此推荐通过yum安装ansible:
[root@ACA8D5EF ~]# yum install ansible
检查是否安装正确
ansible sa -m ping
检查项
修改SSH配置文件 (主从配置)
vi /etc/ssh/sshd_config
开放四个配置 (主从配置)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes
重启服务
配置项
cd ~/.ssh
ssh-keygen -t rsa
cat id_rsa.pub----公钥内容
:添加目标节点的SSH认证信息
#ssh-copy-id root@目标节点IP
把产生的公钥复制到从节点的authorized_keys
vim ~/.ssh/authorized_keys
Ansible的优势:无客户端,推送式,第三方模块特别多
Ansible缺点
Ansible优点
Ansible功能
Ansible与其他软件的对比
总结
1、Ansible概念
2、Ansible功能
3、Ansible优缺点
4、主流软件对比
Ansible与其他主流软件对比
Ansible缺点
1、效率低、易挂起
2、并发性能差
Ansible优点
Ansible的功能
1、系统环境配置
2、安装软件
3、持续集成
4、热回滚
Ansible是一个自动化管理It资源的工具
课程目标
1、了解Ansible
2、学习使用Ansible管理It资源
3、学习Ansible API
4、阅读Ansible部分源码
Ansible教程
与其他软件对比
Ansible功能
Ansible优点
Ansible的优势:无客户端,推送式,第三方模块特别多
Ansible的功能:系统环境配置,安装软件,持续集成,热回滚