ansible 常用命令

onepiecedn 2020-04-23

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):限制运行主机;

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

[ ~]# 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组所有的主机列表,执行命令如下:
[ ~]# ansible web --list      <!-- --list:表示列出主机列表信息-->  hosts (2):    192.168.100.20    192.168.100.30
③批量显示web组中的磁盘使用空间,执行命令如下:
[ ~]# 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% /devtmpfs               tmpfs     912M   84K  912M    1% /dev/shmtmpfs               tmpfs     912M     0  912M    0% /sys/fs/cgroup/dev/sda1           xfs      1014M  173M  842M   18% /boottmpfs               tmpfs     183M   16K  183M    1% /run/user/42tmpfs               tmpfs     183M     0  183M    0% /run/user/0192.168.100.20 | SUCCESS | rc=0 >>文件系统            类型      容量  已用  可用 已用% 挂载点/dev/mapper/cl-root xfs        17G  4.3G   13G   26% /devtmpfs            devtmpfs  897M     0  897M    0% /devtmpfs               tmpfs     912M   84K  912M    1% /dev/shmtmpfs               tmpfs     912M     0  912M    0% /sys/fs/cgroup/dev/sda1           xfs      1014M  173M  842M   18% /boottmpfs               tmpfs     183M   16K  183M    1% /run/user/42tmpfs               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……]
列出支持的模块:
[ ~]#ansible-doc -l
查询ping模块的说明信息:
[ ~]# 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命令后,显示如下:
[ ~]# ansible-consoleWelcome to the ansible console.Type help or ? to list commands.      <!--输入help或?获取帮助--> (2)[f:5]$ cd web    <!--使用cd命令切换主机或分组--> (2)[f:5]$ list                  <!--列出当前的设备-->192.168.100.20192.168.100.30<!--支持Tab键补全,快捷键Ctrl+D或Ctrl+C即可退出当前的虚拟终端-->
 

相关推荐