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):限制运行主机;
①检查所有主机是否存活,执行命令如下:
[ ~]# 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即可退出当前的虚拟终端-->
相关推荐
laisean 2020-09-27
onepiecedn 2020-10-29
guchengxinfen 2020-10-12
houdaiye 2020-09-23
逆时针 2020-08-19
pzczyy 2020-08-19
annan 2020-08-02
hpujsj 2020-07-26
annan 2020-07-18
逆时针 2020-06-21
annan 2020-06-20
逆时针 2020-06-14
逆时针 2020-06-14
awoyaoc 2020-06-12
逆时针 2020-06-09
piaotiejun 2020-06-07
awoyaoc 2020-06-07