Ansible常用板块
Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于板块工作的,本身没有批量部署的能力。真正具备批量部署的是ansible所运行的板块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种板块核心板块、command板块、自己设置板块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必须可以让节点一次性运行多个任务。
下面我们详情一下Ansible常用的少量板块
ping
? ping板块用来检查目标主机能否在线
? 例子:ansible webserver -m ping
yum
? yum板块用来在Centos系统上使用yum命令安装软件包
选项:
? name: 指定安装包的名字
? state:latest 安装最新版 present 默认安装 installed 安装 absent 卸载
? 例子:ansible webservers -m yum -a ‘name=httpd state=latest’
command
? command板块用来执行系统命令,但是不支持shell下的特殊符号 如:| &&等
? 例子:ansible webservers -m command -a ‘echo 李想’
shell
? shell板块和command板块使用方法基本一致,但是他可以支持shell的特殊符号,如: | && 等
? 例子:ansible webservers -m shell -a “cd /opt/ && touch lixiang”
service
? service板块用来管理centos上的服务的启动、关闭、重启和重载
选项:
? name: 服务名字
? state: started(启动) stopped(中止) restarted(重启) reloaded(重载)
? enabled: 默认是no,将服务设置为开机自启
file
? file板块用来创立文件、目录、链接文件
选项:
? group:定义文件/目录的属组
? mode:定义文件/目录的权限
? owner:定义文件/目录的属主
? path:必选项,定义文件/目录的路径
? recurse:递归的设置文件的属性,只对目录有效
? src:要被链接的源文件的路径,只应用于state=link的情况
? dest:被链接到的路径,只应用于state=link的情况
state:
? directory:假如目录不存在,创立目录
? file:即便文件不存在,也不会被创立
? link:创立软链接
? hard:创立硬链接
? touch:假如文件不存在,则会创立一个新的文件,假如文件或者目录已存在,则升级其最后修改时间
? absent:删除目录、文件或者者取消链接文件
user
? user板块用来创立客户
选项:
? home: 指定创立的家目录
? groups:指定客户组
? uid:指定UID
? password:设置密码,密码必需是密文
? name:创立的客户名字
? createhome:能否创立家目录(yes/no)
? state: 是创立还是删除。(present,absent),默认是创立
? shell: 指定客户登录的shell环境
group
? group用来创立客户组
选项:
? gid:指定用的gid。
? name:指定客户名。
? state:是创立还是删除。(present,absent)
copy
? copy板块用来复制文件至目标主机
选项:
? src:文件在管理主机的据对路径或者者相对路径
? dest:将文件复制到目标主机的路径
? bakcup:能否将目标主机的同名文件备份,默认为no
? directory_mode:递归受权
例子:
? ansible webservers -m copy -a ‘src=/root/nginx.sh dest=/opt/’
unarchive
? unarchive板块用来解压文件
选项:
? copy:在解压文件之前,能否先将文件复制到远程主机,默认为yes。若为no,则要求目标主机上压缩包必需存在
? creates:指定一个文件名,当该文件存在时,则解压指令不执行
? dest:远程主机上的一个路径,即文件解压的绝对路径。
? group:解压后的目录或者文件的属组
? mode:解压后文件的权限
? src:假如copy为yes,则需要指定压缩文件的源路径
? owner:解压后文件或者目录的属主
例子:
? ansible webservers -m unarchive -a ‘src=/root/nginx.tar.gz dest=/opt/ group=www ower=www mode=777 ’
get_url
? get_url板块,该板块主要用于从http、ftp、https服务器上下载文件(相似于wget
选项:
? url: 指定要下载的文件的URL地址
例子:
? ansible webservers -m get_url -a ‘url= http://nginx.org/download/nginx-1.15.7.tar.gz’
synchronize
? 使用rsync同步文件,将主控方目录推送到指定节点的目录下,使用此板块需要先安装rsync
? delete: 删除不存在的文件,delete=yes 使两边的内容一样(即以推送方为主),默认no
? src: 要同步到目的地的源主机上的路径; 路径可以是绝对的或者相对的。假如路径使用”/”来结尾,则只复制目录里 的内容,假如没有使用”/”来结尾,则包含目录在内的整个内容一律复制
? dest:目的地主机上将与源同步的路径; 路径可以是绝对的或者相对的。
? dest_port:默认目录主机上的端口 ,默认是22,走的ssh协议。
? mode: push或者pull,默认push,一般用于从本机向远程主机上传文件,pull 模式用于从远程主机上取文件。
? rsync_opts:通过传递数组来指定其余rsync选项。
fetch
? fetch板块它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中。
选项:
? src:远程系统上要获取的文件。 这必需是一个文件,而不是一个目录。 后续版本可能会支持递归提取。
? dest:保存文件的目录
setup
? setup 板块用于收集远程主机的少量基本信息。
选项:
? filter参数:用于进行条件过滤。假如设置,仅返回匹配过滤条件的信息。
常用的过滤关键词:
? ansible_all_ipv4_addresses:仅显示ipv4的信息
? ansible_devices:仅显示磁盘设施信息
? ansible_distribution:显示是什么系统,例:centos,suse等
? ansible_distribution_major_version:显示是系统主版本
? ansible_distribution_version:仅显示系统版本
? ansible_machine:显示系统类型,例:32位,还是64位
? ansible_eth0:仅显示eth0的信息
? ansible_hostname:仅显示主机名
? ansible_kernel:仅显示内核版本
? ansible_lvm:显示lvm相关信息
? ansible_memtotal_mb:显示系统总内存
? ansible_memfree_mb:显示可用系统内存
? ansible_memory_mb:详细显示内存情况
? ansible_swaptotal_mb:显示总的swap内存
? ansible_swapfree_mb:显示swap内存的可用内存
? ansible_mounts:显示系统磁盘挂载情况
? ansible_processor:显示cpu个数(具体显示每个cpu的型号)
? ansible_processor_vcpus:显示cpu个数(只显示总的个数)
? ansible_python_version:显示python版本
例子:
? 获取目标主机的ipv4地址
? ansible webservers -m setup -a ‘filter=ansible_all_ipv4_addresses’
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Ansible常用板块