[斯普兰克] 对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"
我可以感受到还有一些其他方式,但这次的验证就到此为止了。