Ansible简介

嗨,今天我们来看看名为Ansible的系统管理自动化工具。这类工具有很多,但Ansible不同于无代理。是的,你读对了,它没有客户端,是用python语言开发的。Ansible架构非常简单,它由一个必须是Linux的管理器和一个可能是Linux、BSD或Windows的管理系统组成。windows有一些不同之处,但安装Ansible后这不是问题。所有系统都以相同的方式管理。在Linux和BSD中,通过ssh建立连接,但在windows RMI协议中。

null

图片[1]-Ansible简介-yiteyi-C++库 安装Ansible

首先我们使用fedora作为管理器,我们应该只在这个系统上安装ansible。下面的命令在管理器上安装ansible

Ubuntu、Debian、Mint、Kali

$ sudo apt install ansible
Ubuntu, Debian, Mint, Kali
Ubuntu、Debian、Mint、Kali

软呢帽、CentOS、RHEL

$ sudo yum install ansible -y

无密码连接

然后创建ssh id,如果它不存在的话。我们可以跳过密钥生成问题而不给出任何值。

$ ssh-keygen
Password-less Connection
无密码连接

然后我们将使用ssh id copy命令将密钥安装到远程管理系统。现在我们可以用一种简单的方式使用ansible了。

$ ssh-copy-id [email protected]

资源清册和主机

Ansible使用其主机名为Inventory的文件来获取有关远程系统的信息。我们可以在此清单文件中对主机进行分组。将此主机(192.168.122.165)添加到添加主机资源清册。在这里 myex 是一个包含下列主机的组名。现在,我只添加一个主机

$ sudo vim /etc/ansible/hosts[myex]192.168.122.165
Inventory and Hosts
资源清册和主机

Ping主机并检查连接

现在我们可以用ansible了。我们使用ping模块 -m 选项并指定组名。我们可以对所有库存主机使用all。

$ ansible myex -m ping
Ping Hosts and Check Connectivity
Ping主机并检查连接

运行特别命令

我们可以指定在远程系统上运行的纯命令 -a 选项。临时命令使我们能够在远程系统上运行命令。在本例中,我们将打印 passwd 文件 cat 命令。

$ ansible myex -a "cat /etc/passwd"
Run Ad Hoc Command
运行特别命令

调试可解析和详细输出

如果我们需要调试Ansible工作,我们可以使用 -vvv 选项,其中v的计数决定调试级别。正如您在下面看到的,连接用户名和远程模块被指定,然后ssh连接使用指定的参数进行。如果ssh连接有问题,您可以在这里找到有关该问题的详细信息。可译动词有EXEC、PUT等。

$ ansible myex -a "cat /etc/passwd" -vvv
Debug Ansible and Verbose Output
调试可解析和详细输出

在远程系统上运行Sudo

我们可以在远程系统上使用sudo特权 --sudo 并用–sudo user指定sudo user。

$ ansible myex -a "/bin/cat /etc/passwd" --sudo

易变结构

因为Ansible使用ssh,我们可以通过在下面的行中取消注释来禁用ssh主机密钥检查。

$ sudo vim /etc/ansible/ansible.cfg# additional paths to search for roles in, colon separated#roles_path = /etc/ansible/roles# uncomment this to disable SSH key host checkinghost_key_checking = False# change this for alternative sudo implementations

有时有很多系统来管理和运行命令。我们可以使ansible的工作与 -f 选项

$ ansible all -a "ls ~ismail" --sudo -f 10

相关文章: 如何用Puttygen生成Putty键?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享