天天看点

Ansible命令应用之常用模块(持续更新中)

上一篇博客中主要介绍了Ansible概述及Ansible部署,详见以下链接自动化运维之Ansible概述及Ansible部署请添加链接描述

本篇将介绍Ansible命令应用之常用模块,以实例的形式进行演示。

-v:输出详细信息(可以使用多个v)

-i PATH:指定hosts文件位置

-f NUM :指定开启的进程数(默认为5)

-m MOULE :指定module的名称(默认为command)

-m DIRECTORY:指定module的目录来加载module,默认是/usr/share/ansible

-a,MODULE_ARGS:指定module模块的参数

-k:提示输入ssh的密码,而不是使用基于ssh的密钥认证

-u USERNAME:指定移动端的执行用户

-C:测试此命令执行会改变什么内容,不会真正的去执行

Ansible的命令行管理工具都是由一系列模块、参数所支持的,可以在命令后面加上-h或--help获取帮助。如使用ansible-doc工具可以通过ansible-doc -h或者ansible-doc --help查看其帮助信息。

ansible-doc是用来查看模块帮助信息的工具,最主要的选项-l用来列出可使用的模块,-s用来列出某个模块的描述信息和使用示列。如列出yum模块的描述信息和操作动作:

默认模块,用于运行系统命令,比如echo hello。不支持shell变量和管道。

Ansible中的cron模块用于定义任务计划。其中有两种状态(state):present表示添加(省略状态时默认使用),absent表示移除。

Ansible中user模块用于创建新用户和更改、删除已存在的用户。其中name选项用来指明创建的用户名称。

Ansible中的group模块用于对用户组进行管理

Ansible中的copy模块用于实现文件复制和批量下发文件。其中使用src来定义本地源文件路径,使用dest定义被管理主机文件路径,使用content则是通过指定信息内容来生成目标文件。

在Ansible中使用file模块来设置文件属性。其中使用path指定文件路径,使用src定义源文件路径,使用name或dest来替换创建文件的符号链接。

在Ansible中使用ping模块来检测指定主机的连通性。

在Ansible中使用service模块来控制管理服务的运行状态。其中,使用enabled表示是否开机自动启动,取值为true或者false;使用name定义服务名称;使用state指定服务状态,取值分别为started、stopped、restarted。

Ansible中的shell模块可以在被管理主机上运行命令,并支持像管道符等功能的复杂命令。

Ansible中的script模块可以将本地脚本复制到被管理主机上进行运行。需要注意的是,使用相对路径来指定脚本。

Ansible中的yum模块负责在被管理主机上安装和卸载软件包,但是需要提前在每个节点配置自己的YUM仓库。其中使用name指定要安装的软件包,还需要带上软件包的版本号,否则安装最新的软件包;使用state指定安装软件包的状态,present、latest用来表示安装,absent表示卸载。

在Ansible中使用setup模块收集、查看被管理主机的facts(facts是Ansible采集被管理主机设备信息的一个功能)。每个被管理主机在接收并运行管理命令之前,都会将自己的相关信息(操作系统版本、IP地址等)发送给控制主机。

下一篇将介绍Ansible Playbook的使用,敬请期待!