快速入门:如何在Linux上为自动化安装和配置Ansible

为什么需要在Linux上安装和配置Ansible。

通过使用配置管理系统,我们可以控制大量服务器,这使系统管理员的工作更加轻松。 简而言之,我们可以使用自动化工具从一台中央服务器监视或管理大量服务器或系统。

有许多此类工具可用于自动化,例如Chef或Puppet。 但是,这些工具很难配置。 对于这些选项,我们有一个很好的选择Ansible。 有了它,您可以非常轻松地在Linux上安装和配置Ansible。

本指南将快速指导您如何在Linux上安装和配置Ansible。

Ansible有多少功能!

Ansible不使用任何工具来执行自动化任务,这意味着客户端上没有正在运行的后台进程。 相反,Ansible使用SSH建立连接以执行其操作。

安装Ansible的安装详细信息。

Ansible管理服务器的详细信息:

OS: Red Hat Enterprise Linux Server release 7.2 (Maipo)
Hostname: destroyer
IP: 168.123.15.60
User: lradmin

客户机器详细信息:

client 1
 
Hostname: web1
IP: 168.123.2.10
 
Client 2
 
Hostname: web2
IP: 168.123.12.12

步骤1:在管理服务器上安装Ansible。

对于Linux Mint,Ubuntu和Debian

#apt-add-repository ppa:Ansible/Ansible
#apt-get update && sudo apt-get install Ansible

对于RHEL,CentOS和Fedora

#yum install Ansible

请注意,RedHat没有官方的Ansible存储库,我们仍然可以通过在RHEL或Centos下添加Epel存储库来安装Ansible。

安装Ansible后,您可以使用以下命令检查版本。

[[email protected] ~]# Ansible --version
Ansible 2.3.1.0
  config file = /etc/Ansible/Ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.5 (default, Oct 11 2015, 17:47:16) [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)]
[[email protected] ~]#

步骤2:配置SSH以配置Ansible。

要通过“销毁者”管理服务器在客户端计算机上进行部署或管理,我们需要在它们之间设置SSH密码。 在此演示中,我们为lradmin用户配置了SSH密码。

在管理服务器上为lradmin用户生成SSH密钥。

[[email protected] root]# id
uid=0(root) gid=1001(lradmin) groups=1001(lradmin) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[[email protected] root]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5e:a3:5b:4c:dc:15:7d:96:59:a8:85:97:43:03:70:a2 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|          o.o+++=|
|         . o. *=+|
|        E    +.o.|
|         . ...   |
|        S = .    |
|       . = .     |
|        o o      |
|         o       |
|        .        |
+-----------------+

在这里,我们已经完成了密钥生成,在下一步中,我们需要将“ /root/.ssh/id_rsa.pub”的内容复制到lradmin用户的客户端系统中。 请按照本文中的说明进行操作,以便密码可以在管理服务器与web1和web2客户端计算机之间进行通信。

完成配置密码后,可以如下所示通过SSH进行仔细检查。

[[email protected] ~]# id
uid=0(root) gid=1001(lradmin) groups=1001(lradmin) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[[email protected] ~]# ssh [email protected]
Last login: Mon Jun 19 13.25:34 2017 from ip-172-31-15-60.ap-south-1.compute.internal
[[email protected] ~]# hostname
web2
[[email protected] ~]# logout
Connection to 168.123.12.12 closed.
[[email protected] ~]# ssh [email protected]
Last login: Mon Jun 19 13:49:23 2017 from ip-168-123-15-60.ap-south-1.compute.internal
[[email protected] ~]# hostname
web1
[[email protected] ~]# logout
Connection to 168.123.2.10 closed.
[[email protected] ~]#

步骤3:为Ansible创建库存文件。

下一步,我们需要为客户列表创建库存文件。 基本上,它是用于自动化的计算机的客户端IP或主机名的列表。

请将以下代码行添加到我们管理服务器上的“ / etc / Ansible / hosts”文件中。

[web]
168.123.2.10 Ansible_user=lradmin
168.123.12.12 Ansible_user=lradmin

上面的代码行描述了客户端计算机列表如何属于具有Ansible作为lradmin的Web用户类别。

步骤4:检查连接。

现在是时候检查我们的配置是否正确设置了。 为此,我们将使用Ansible ping。

#Ansible -m ping web

在上面的命令中,我们对Web服务器使用了ping命令。

如果一切正常,系统应使用以下消息进行响应。

[[email protected] ~]# Ansible -m ping web
168.123.12.12 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
168.123.2.10 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[[email protected] ~]#

步骤4:在客户端计算机上执行远程命令。

现在,我们可以在客户端计算机上运行任意命令以检索有关它们的一些信息。 因此,为此,您需要使用Ansiblensible中的“命令”模块。

  • 如果要在客户端计算机上使用文件系统。
[root[email protected] ~]# ansible -m command -a "df -h" web
168.123.12.12 | SUCCESS | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2       10G  876M  8.5G  10% /
devtmpfs        418M     0  418M   0% /dev
tmpfs           426M     0  426M   0% /dev/shm
tmpfs           436M   13M  434M   3% /run
tmpfs           446M     0  446M   0% /sys/fs/cgroup
tmpfs           130M     0  130M   0% /run/user/1000
tmpfs           160M     0  160M   0% /run/user/0
 
168.123.2.10 | SUCCESS | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2       10G  1.7G  7.7G  16% /
devtmpfs        418M     0  418M   0% /dev
tmpfs           446M     0  446M   0% /dev/shm
tmpfs           426M   13M  424M   3% /run
tmpfs           466M     0  466M   0% /sys/fs/cgroup
tmpfs           140M     0  140M   0% /run/user/1000
tmpfs           180M     0  180M   0% /run/user/0
 
[[email protected] ~]#

  • 检查客户端计算机的平稳运行。

    [[email protected] ~]# ansible -m command -a "uptime" web
    168.123.12.12 | SUCCESS | rc=0 >>
    14:35:23 up  13:49,  2 users,  load average: 0.00, 0.01, 0.05
     
    168.123.2.10 | SUCCESS | rc=0 >>
    14:35:23 up  13:49,  2 users,  load average: 0.00, 0.01, 0.05
     
    [[email protected] ~]#

    结论:

    IT行业对自动化的需求日益增长,以降低成本以及完成各种任务的时间。 市场上有可用的工具和应用程序。 Ansilble易于安装和配置。 此外,其代理在客户端上运行任何后台进程。

Sidebar