onepiecedn 2020-04-23
ansible 是生产环境中使用非常频繁的命令之一,主要在以下场景使用:
非固化需求;
临时一次性操作;
二次开发接口调用;
非固化需求是指临时性的维护,如查看web服务器组磁盘使用情况、复制一个文件到其他机器等。
类似这些没有规律的、临时需要做的任务,我们成为非固化需求,临时一次性操作,语法如下:
Ansible <host-pattern> [options]
①检查所有主机是否存活,执行命令如下:
[ ~]# 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的返回结果非常友好,一般会用三种颜色来表示执行结果:
Ansible-doc用来查询ansible模块文档的说明,类似于man命令,针对每个模块都有详细的用法说明及应用案例介绍,语法如下:
ansible-doc [options] [module……]
列出支持的模块:
[ ~]#ansible-doc -l
查询ping模块的说明信息:
[ ~]# ansible-doc ping
Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux中的sh或source命令,用来执行系列任务。其工作机制:通过读取预先编写好的playbook文件实现集中处理任务。Ansible-playbook命令后跟yml格式的playbook文件,playbook文件存放了要执行的任务代码,命令使用方式如下:
Ansible-playbook playbook.yml<!--playbook.yml文件要提前编写好,建议使用绝对路径-->
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即可退出当前的虚拟终端-->