Ansible - Ad hoc 命令
Ad hoc 命令是可以单独运行以执行快速功能的命令。 以后不需要执行这些命令。
例如,您必须重新启动公司的所有服务器。 为此,您将从"/usr/bin/ansible"运行 Adhoc 命令。
这些临时命令不用于配置管理和部署,因为这些命令是一次性使用的。
ansible-playbook 用于配置管理和部署。
并行性和 Shell 命令
一次在 12 个并行分支中重新启动您的公司服务器。 为此,我们需要设置 SSHagent 进行连接。
$ ssh-agent bash $ ssh-add ~/.ssh/id_rsa
在 12 个并行分支中为组"abc"中的所有公司服务器运行重新启动 −
$ Ansible abc -a "/sbin/reboot" -f 12
默认情况下,Ansible 将从当前用户帐户运行上述 Ad-hoc 命令。 如果要更改此行为,则必须在 Ad-hoc 命令中传递用户名,如下所示 −
$ Ansible abc -a "/sbin/reboot" -f 12 -u username
文件传输
您可以使用 Ad-hoc 命令在多台计算机上并行执行 SCP(安全复制协议)大量文件。
将文件传输到多台服务器/机器
$ Ansible abc -m copy -a "src = /etc/yum.conf dest = /tmp/yum.conf"
创建新目录
$ Ansible abc -m file -a "dest = /path/user1/new mode = 777 owner = user1 group = user1 state = directory"
删除整个目录和文件
$ Ansible abc -m file -a "dest = /path/user1/new state = absent"
管理包
临时命令可用于 yum 和 apt。 以下是一些使用 yum 的 Ad-hoc 命令。
以下命令检查是否安装了 yum 包,但不更新它。
$ Ansible abc -m yum -a "name = demo-tomcat-1 state = present"
以下命令检查包没有安装。
$ Ansible abc -m yum -a "name = demo-tomcat-1 state = absent"
以下命令检查是否安装了最新版本的软件包。
$ Ansible abc -m yum -a "name = demo-tomcat-1 state = latest"
收集事实
Facts 可用于在 playbook 中实现条件语句。 您可以通过以下 Ad-hoc 命令找到所有事实的临时信息 −
$ Ansible all -m setup