Ansible教程

Ansible 临时命令

Ansible 临时命令

临时命令是使用 Ansible 的最简单方法之一。当您想在一个服务器或一组服务器上发出一些命令时,可以使用这些命令。临时命令不会存储以备将来使用,但它代表了一种与所需服务器交互的快速方式。
Ansible ad-hoc 命令使用/usr/bin/ansible 命令行工具在一个或多个受管节点上自动执行单个任务。 Ad-hoc 命令快速简便,但不可重复使用。 Ad-hoc 命令展示了 Ansible 的简单性和强大功能。

语法

ansible <hosts> [-m <module_name>]-a <"arguments">-u <username> [--become]

说明

主机: 它可以是清单文件中的一个条目。要指定清单中的所有主机,请使用 all 或"*"。
module_name: 这是一个可选参数。 Ansible 中有数百个模块可用,例如 shell、yum、apt、file、 和 copy。默认情况下,它是命令。
参数: 我们应该传递模块所需的值。它可以根据使用的模块进行更改。
用户名: 指定 Ansible 可以在其中执行命令的用户帐户。
成为: 这是一个可选参数,当我们要运行需要 sudo 权限的操作时指定。默认情况下,它变为 false。

1、并行和 shell 命令

您可以同时在 12 个并行分支中重新启动公司服务器。为此,您需要设置 SSHagent 以进行连接。
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
要在 12 个并行分支中为"abc"组中的所有公司服务器运行重启:
$ ansible abc-a "/sbin/reboot"-f 12
默认情况下,Ansible 将从当前用户帐户运行上述临时命令。如果要更改,则在 ad-hoc 命令中传递用户名,如下所示:
$ ansible abc-a "/sbin/reboot"-f 12-u username

2.文件传输

您可以使用临时命令来执行 SCP(安全复制协议),这意味着在多台机器或服务器上并行处理大量文件。
在多台机器或服务器上传输文件
 $ ansible abc-m copy-a "src = /etc/yum.conf dest = /tmp/yum.conf"
创建新目录
$ ansible abc-m file-a "dest = /path/user1/new mode = 888 owner = user1 group = user1 state = directory" 
删除所有目录和文件
 $ ansible abc-m file-a "dest = /path/user1/new state = absent"

3.管理包

临时命令可用于 apt 和 yum 模块。以下是使用 yum 的以下临时命令。
下面的命令检查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" 

4.管理用户和组

您可以使用临时命令在受管节点上管理、创建和删除用户帐户。
$ ansible all-m user-a "name=foo password=<crypted password here>"
$ ansible all-m user-a "name=foo state=absent"

5.管理服务

确保服务在所有网络服务器上启动。
$ ansible webservers-m service-a "name=httpd state=started"
或者,重新启动所有网络服务器上的服务:
$ ansible webservers-m service-a "name=httpd state=restarted"
确保服务停止:
$ ansible webservers-m service-a "name=httpd state=stopped"

6.收集事实

事实代表已发现的系统变量。您可以使用事实来实现任务的有条件执行,也可以用于获取有关您的系统的临时信息。要查看所有事实:
$ ansible all-m setup
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4