Ansible简单先容及用法

打印 上一主题 下一主题

主题 1040|帖子 1040|积分 3120

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、简介

Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。
Ansible与Saltstack最大的区别是Ansible无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程下令实行或下发配置:相同点是都具备功能强大、灵活的系统管理、状态配置,两者都提供丰富的模板及API,对云计算平台、大数据都有很好的支持。
二、特点

部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
默认利用SSH协议对装备进行管理;
主从会合化管理;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
对云计算平台、大数据都有很好的支持;
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
幂等性:一种操作重复多次效果相同
三、Ansible架构图


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协议的指纹验证

同时存在多个Ansible服务主配置文件时,具体优先级顺序:

主机清单:
/etc/ansible/hosts
插件目次:
/usr/share/ansible_plugins/
1.ansible下令的利用说明
常用选项
ansible -m MOD_NAME -a MOD_ARGS
表现调用什么模块,利用模块的那些参数

ansible中得ansible-doc得用法:
一样平常用法:
ansible-doc -l 获取模块信息
ansible-doc -s MOD_NAME 获取指定模块的利用资助

四、ansible利用 之一 “下令管理方式”

command:在远程主机实行下令;不支持|管道下令
ping:探测目的主机是否存活;

shell:在远程主机上调用shell解释器运行下令,支持shell的各种功能,例如管道等 ;
留意:command和shell模块的核心参数直接为下令本身;而其它模块的参数通常为“key=value”格式;
copy:复制文件到远程主机,可以改权限等

例:
ansible huimin99 -m copy -a 'src=/root/5.txt dest=/tmp/test mode=640'

ansible huimin99 -m copy -a "content='hello world' dest=/tmp/test mode=640"

cpoy得相关选项:

file设置文件属性:
可以用ansible-doc -s file 查看用法参数

用法:
1)创建目次
-a "path=...   state=directory"
ansible huimin99 -m file -a "path=/tmp/www  state=directory"

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"

假如文件不存在可以远程创建
ansible 192.168.174.132 -m file -a "path=/tmp/test state=touch"

cron模块:管理cron操持任务
ansible huimin99 -m cron -a "name='sync time' job='/usr/sbin/ntpdate time.windows.com'  minute=*/3"

yum模块:yum安装软件

ansible 192.168.174.133 -m yum -a "name=gcc state=present"

service: 服务程序管理

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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表