Ansible简单先容及用法
一、简介Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。
Ansible与Saltstack最大的区别是Ansible无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程下令实行或下发配置:相同点是都具备功能强大、灵活的系统管理、状态配置,两者都提供丰富的模板及API,对云计算平台、大数据都有很好的支持。
二、特点
部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
默认利用SSH协议对装备进行管理;
主从会合化管理;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
对云计算平台、大数据都有很好的支持;
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
幂等性:一种操作重复多次效果相同
三、Ansible架构图
https://i-blog.csdnimg.cn/direct/bd1877b541324514ae507037b7dc8ad2.png
Ansible核心组件说明:
Ansible:Ansible的核心程序
Host Lnventory:记载了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:YAML格式文件,多个任务定义在一个文件中,利用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
Core Modules:Ansible实行任何管理任务都不是由Ansible本身完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
Connection Plugins:毗连插件,Ansible和Host通讯利用
ansible得配置文件:
vim /etc/ansible/ansible.cfg
修改:host_key_checking = False
设置成默认不需要SSH协议的指纹验证
https://i-blog.csdnimg.cn/direct/401b872d365e4796b125f0459e0945a6.png
同时存在多个Ansible服务主配置文件时,具体优先级顺序:
https://i-blog.csdnimg.cn/direct/4311ecf50891430a93488975b2d1fbe2.png
主机清单:
/etc/ansible/hosts
插件目次:
/usr/share/ansible_plugins/
1.ansible下令的利用说明
常用选项
ansible -m MOD_NAME -a MOD_ARGS
表现调用什么模块,利用模块的那些参数
https://i-blog.csdnimg.cn/direct/b1af9fa72fdc49b09732fb2dfae9e489.png
ansible中得ansible-doc得用法:
一样平常用法:
ansible-doc -l 获取模块信息
ansible-doc -s MOD_NAME 获取指定模块的利用资助
https://i-blog.csdnimg.cn/direct/15c80711411e4e459bf233939318192b.png
四、ansible利用 之一 “下令管理方式”
command:在远程主机实行下令;不支持|管道下令
ping:探测目的主机是否存活;
https://i-blog.csdnimg.cn/direct/7bc6d51335434a6f8556cfae6ac7307e.pnghttps://i-blog.csdnimg.cn/direct/2b697b66f19a41d884dc6c28a4d0fafe.png
shell:在远程主机上调用shell解释器运行下令,支持shell的各种功能,例如管道等 ;
留意:command和shell模块的核心参数直接为下令本身;而其它模块的参数通常为“key=value”格式;
copy:复制文件到远程主机,可以改权限等
https://i-blog.csdnimg.cn/direct/08c179348e924034b762d24163f1ff06.png
例:
ansible huimin99 -m copy -a 'src=/root/5.txt dest=/tmp/test mode=640'
https://i-blog.csdnimg.cn/direct/cfb150c7d2a24895b2c3fd4e575be75a.png
ansible huimin99 -m copy -a "content='hello world' dest=/tmp/test mode=640"
https://i-blog.csdnimg.cn/direct/3960fca9cafb4455998b8e4c5167eb28.png
cpoy得相关选项:
https://i-blog.csdnimg.cn/direct/fdb70fedbdfc4102bf1f8d9fdeae116a.png
file设置文件属性:
可以用ansible-doc -s file 查看用法参数
https://i-blog.csdnimg.cn/direct/6692257e132c464c82dfa6134c4faddf.png
用法:
1)创建目次
-a "path=... state=directory"
ansible huimin99 -m file -a "path=/tmp/www state=directory"
https://i-blog.csdnimg.cn/direct/9d6282536fca47bc828795f465ce4a41.png
2)创建链接文件
-a "src=.... dest= state=link"
ansible huimin99 -m file -a "src=/etc/fstab dest=/tmp/fstab state=link"
3)删除文件
-a "path=.... state=absent"
ansible huimin99 -m file -a "path=/opt/test state=absent"
https://i-blog.csdnimg.cn/direct/69be3870c5134e4aa0677b4984229da4.png
假如文件不存在可以远程创建
ansible 192.168.174.132 -m file -a "path=/tmp/test state=touch"
https://i-blog.csdnimg.cn/direct/b5bd637b95a04acdac0c8073407c9ae5.png
cron模块:管理cron操持任务
ansible huimin99 -m cron -a "name='sync time' job='/usr/sbin/ntpdate time.windows.com' minute=*/3"
https://i-blog.csdnimg.cn/direct/9838b3d6f17942e68ca10c09c35c5bc3.pnghttps://i-blog.csdnimg.cn/direct/ceefbd582db040d6aeb0cf0409651fe6.pnghttps://i-blog.csdnimg.cn/direct/a1ed902f0ef14d719a4e5df395e6d216.png
yum模块:yum安装软件
https://i-blog.csdnimg.cn/direct/04c38bf3fb3d4a989034da7047e90bec.png
ansible 192.168.174.133 -m yum -a "name=gcc state=present"
https://i-blog.csdnimg.cn/direct/90b45d9f8cf4448883052479a2b11be5.png
service: 服务程序管理
https://i-blog.csdnimg.cn/direct/b45a96cf2f8e4506b0be1dcea0677fd2.png
ansible huimin99 -m service -a "name=httpd enabled=true"
stat:获取远程文件状态信息,atime/ctime/mtime/md5/uid/gid等信息
ansible huimin99 -m stat -a "path=/etc/sysctl.conf"
get_url:实现在远程主机下载指定url到本地,支持sha256sum文件校验
ansible huimin99 -m get_url -a "url=http://www.baidu.com dest=/opt/ mode=0440 force= yes"
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]