[斯普兰克] 对Splunk-ansible进行验证(适用于其他服务器)

验证 Splunk-ansible(用于其他服务器)。

The purpose and background.

我已经验证了在GitHub上公开的“splunk-ansible”,并确认可以自动安装Splunk Enterprise和Splunk Universal Forwarder以及启动服务在我的服务器上。

接下来,我们将验证是否可以对其他服务器进行相同方式的自动安装。

视察

自动构建时执行的命令如下所示。

$ ansible-playbook --inventory localhost, --connection local site.yml --extra-vars "@default.yml"

如果将库存更改为“localhost”并指定为“local”,那么只需将其更改为其他服务器地址,即可运行。

创建库存档案

我新建了一个名为”hosts”的文件,并在其中填写了目标服务器的信息。
由于本次环境是使用AWS EC2上的RHEL8,我在”vars”中添加了连接信息。

[UF]
xxx.xxx.xxx.xxx

[UF:vars]
ansible_ssh_user=ec2-user
ansible_ssh_private_key_file=xxxxxxxx.pem

无论如何,都会被安装到本地

因为已经准备好了库存文件,所以我立刻进行了执行试验。
然而无论进行多少次尝试,它都被安装到了本地环境中。

$ ansible-playbook --inventory hosts, site.yml --extra-vars "@default.yml"

各种文件的修改

根据调查结果发现,不仅需要配置存货文件,还需要设置一些其他文件。

站点配置文件.yml

在目标主机中有“localhost”的描述。
将此更改为与清单文件的组相对应的描述。
由于此次只有组“UF”,所以将其更改为“all”。

(修改前)

---
- name: Run default Splunk provisioning
  hosts: localhost

更改后

---
- name: Run default Splunk provisioning
  hosts: all

默认.yml

在参数文件”default.yml”中指定了”ansible_connection”。将其注释掉。

(更改之前)

---
ansible_connection: local

更改后

---
#ansible_connection: local

他正朝向他的服务器,但是…

我们进行了上述修正后再次执行,但是出现了进一步的问题。(由于没有保留执行时的日志,只能用文字进行说明)

    • splunkユーザが存在しない

 

    インストール媒体が存在しない

因为我想先试试运行一下,所以虽然有点费力,但事先给对方服务器创建了一个splunk用户,使用scp传输并执行了安装介质,结果Splunk Universal Forwarder成功安装在对方服务器上。

那么,我将针对以上两点做出适当的应对。

选项:
问题1:不存在Splunk用户

通过修改参数文件”default.yml”中的参数来解决了这个问题。这次我们决定使用现有的用户(ec2-user)而不是事先创建splunk用户进行安装。

(更改之前)

splunk:
  user: splunk
  group: splunk

(修改后)

splunk:
  user: ec2-user
  group: ec2-user

第二个问题:没有安装媒介

这里也在参数文件“default.yml”中记录了媒体的位置。

  build_location: /home/splunk/ansible/splunkforwarder-8.0.6-152fb4b2bb96-Linux-x86_64.tgz

由于此路径在对方服务器上不存在,所以发生了错误。
在这个「build_location」中,除了实际路径之外,还可以添加URL。
本次选择将媒体文件保存在AWS S3,并从那里获取。

  build_location: https://xxxxxxxx.s3-ap-northeast-1.amazonaws.com/splunkforwarder-8.0.6-152fb4b2bb96-Linux-x86_64.tgz

自動安装成功毫无问题。

为了验证此设置,删除在对方服务器上创建的splunk用户和安装工具。
通过执行以下命令,成功地将自动安装顺利地在对方服务器上完成,没有发生任何错误。

$ ansible-playbook --inventory hosts, site.yml --extra-vars "@default.yml"

最后

我们在AWS EC2环境下准备了两个实例,并使用Ansible验证了Splunk的自动安装。
根据主机清单文件”hosts”的设置,似乎可以在多个实例上进行安装。
然而,在参数文件”default.yml”中只能指定一个角色。

splunk:
  role: splunk_universal_forwarder

我没有验证过这一点,但是例如,如果要安装Splunk Enterprise和Splunk Universal Forwarder,需要准备site.yml和参数文件”default.yml”,并且需要分别执行Ansible命令。

(主持人)

[UF]
xxx.xxx.xxx.xxx

[UF:vars]
ansible_ssh_user=ec2-user
ansible_ssh_private_key_file=xxxxxxxx.pem

[ENT]
xxx.xxx.xxx.xxx

[ENT:vars]
ansible_ssh_user=ec2-user
ansible_ssh_private_key_file=xxxxxxxx.pem

(site.yml.用户界面)

---
- name: Run default Splunk provisioning
  hosts: UF

(site.yml.ent)的发布

---
- name: Run default Splunk provisioning
  hosts: ENT

(默认.yml.uf)- 请你用中文将以下内容进行简述,只需一个选项:

(默认.yml.uf)

splunk:
  role: splunk_universal_forwarder

(默认.yml.ent)

splunk:
  role: splunk_standalone
$ ansible-playbook --inventory hosts, site.yml.uf --extra-vars "@default.yml.uf"
$ ansible-playbook --inventory hosts, site.yml.ent --extra-vars "@default.yml.ent"

我可以感受到还有一些其他方式,但这次的验证就到此为止了。

广告
将在 10 秒后关闭
bannerAds