ansible 常用命令

Posted centos2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible 常用命令相关的知识,希望对你有一定的参考价值。

ansible

ansible 是生产环境中使用非常频繁的命令之一,主要在以下场景使用:

非固化需求;
临时一次性操作;
二次开发接口调用;

非固化需求是指临时性的维护,如查看web服务器组磁盘使用情况、复制一个文件到其他机器等。
类似这些没有规律的、临时需要做的任务,我们成为非固化需求,临时一次性操作,语法如下:

Ansible  <host-pattern> [options]
  • -v(—verbose):输出详细的执行过程信息,可以得到执行过程所有信息;
  • -i PATH(—inventory=PATH):指定inventory信息,默认为/etc/ansible/hosts;
  • -f NUM(—forks=NUM):并发线程数,默认为5个线程;
  • —private-key=PRIVATE_KEY_FILE:指定密钥文件;
  • -m NAME,—module-name=NAME:指定执行使用的模块;
  • -M DIRECTORY(—module-path=DIRECTORY) :指定模块存放路径,默认为/usr/share/ansible;
  • -a ARGUMENTS(—args=ARGUMENTS):指定模块参数;
  • -u USERNAME(—user=USERNAME):指定远程主机以USERNAME运行命令;
  • -l subset(—limit=SUBSET):限制运行主机;

①检查所有主机是否存活,执行命令如下:

[root@centos01 ~]# ansible all -f 5 -m ping
<!--调用ping模块,all表示/etc/ansible/hosts文件中的所有主机,不用创建all分组(默认存在)-->
192.168.100.20 | SUCCESS => { <!--表示执行成功-->
"changed": false, <!--没有对主机做出更改-->
"ping": "pong" <!--表示执行ping命令的返回结果-->
}
192.168.100.30 | SUCCESS => {
"changed": false,
"ping": "pong"
}


②列出web组所有的主机列表,执行命令如下:
[root@centos01 ~]# ansible web --list      <!-- --list:表示列出主机列表信息-->
hosts (2):
192.168.100.20
192.168.100.30
③批量显示web组中的磁盘使用空间,执行命令如下:
[root@centos01 ~]# ansible web -m command -a "df -hT"
192.168.100.30 | SUCCESS | rc=0 >>
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root xfs 17G 4.4G 13G 26% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 84K 912M 1% /dev/shm
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 173M 842M 18% /boot
tmpfs tmpfs 183M 16K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0

192.168.100.20 | SUCCESS | rc=0 >>
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root xfs 17G 4.3G 13G 26% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 84K 912M 1% /dev/shm
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 173M 842M 18% /boot
tmpfs tmpfs 183M 16K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 iso9660 4.1G 4.1G 0 100% /mnt

web关键字需要提前在/etc/ansible/hosts文件中定义组。
Ansible的返回结果非常友好,一般会用三种颜色来表示执行结果:
  • 红色:表示执行过程出现异常;
  • 橘黄颜色:表示命令执行后目标有状态变化;
  • 绿色:表示执行成功且没有目标机器做修改;











2)Ansible-doc

Ansible-doc用来查询ansible模块文档的说明,类似于man命令,针对每个模块都有详细的用法说明及应用案例介绍,语法如下:
ansible-doc [options] [module……]
列出支持的模块:
[root@centos01 ~]#ansible-doc -l
查询ping模块的说明信息:
[root@centos01 ~]# ansible-doc ping

3)Ansible-playbook

Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux中的sh或source命令
,用来执行系列任务。其工作机制:通过读取预先编写好的playbook文件实现集中处理任务。
Ansible-playbook命令后跟yml格式的playbook文件,playbook文件存放了要执行的任务代码,命令使用方式如下:
Ansible-playbook playbook.yml
<!--playbook.yml文件要提前编写好,建议使用绝对路径-->

4)Ansible-console

Ansible-console是Ansible为用户提供的一款交互式工具,
类似于Windows的cmd或者是Linux中shell。
用户可以在ansible-console虚拟出来的终端上像shell一样使用Ansible内置的各种命令,
这为习惯于使用shell交互式方式的用户提供了良好的使用体验。在终端输入ansible-console命令后,显示如下:
[root@centos01 ~]# ansible-console
Welcome to the ansible console.
Type help or ? to list commands.
<!--输入help或?获取帮助-->
root@all (2)[f:5]$ cd web <!--使用cd命令切换主机或分组-->
root@web (2)[f:5]$ list <!--列出当前的设备-->
192.168.100.20
192.168.100.30
<!--支持Tab键补全,快捷键Ctrl+D或Ctrl+C即可退出当前的虚拟终端-->




以上是关于ansible 常用命令的主要内容,如果未能解决你的问题,请参考以下文章

ansible常用命令大全

Ansible自动化运维之ansible命令运行方式及常用参数和常用模块

Ansible概述及常用命令模块

Ansible概述及常用命令模块

Ansible Ad-Hoc 常用命令

ansible常用命令