用Ansible Role自动化安装New Relic INFRASTRUCTURE
首先
如果在Amazon EC2实例上安装New Relic的INFRASTRUCTURE,则在命令行上执行并不麻烦,但对于多个实例的环境,手工操作将很费时。如果可能的话,最好能够快速自动化并完成安装。
所以这次,我想使用Ansible来自动化安装New Relic INFRASTRUCTURE代理到EC2实例。
很幸运的是,New Relic INFRASTRUCTURE已经准备了Ansible角色,所以只需使用git clone将其下载下来,就能非常简单地通过Ansible进行代理安装!GitHub的URL在这里:GitHub infrastructure-agent-ansible。
另外,如果您还没有创建New Relic账户,请从这里开始。
安装步骤
安装准备
本次我們將按照以下結構來創建Playbook。
-
- 起動環境: AWS EC2
- OS: Amazon Linux AMI release 2017.09
ansible-playbooks
├── roles
│ └── nrainfragent
├── hosts
│ └── local
├── setup-infra.yml
首先是安装Ansible。使用pip进行安装。
$ sudo easy_install pip
$ sudo pip install ansible
1. 下载 New Relic 基础设施代理安装所需的角色。
将INFRASTRUCTURE Agent在GitHub上的安装角色下载到roles目录下。下载完成后,将目录名称更改为”nrinfragent”。
$ cd roles
$ git clone https://github.com/newrelic/infrastructure-agent-ansible.git
$ mv infrastructure-agent-ansible nrinfragent
2. 创建Hosts文件
为了在本地主机上执行Agent安装,本次将创建名为”local”的Hosts文件。
[localhost]
127.0.0.1
3. 创建Playbook
创建一个Playbook,其中包含了安装INFRASTRUCTURE Agent所需的信息和角色。请在许可证密钥(nrinfragent_license_key)处输入您自己的New Relic许可证密钥。本次安装的EC2操作系统为Amazon Linux,但在操作系统名称选项(nrinfragent_os_name)中输入”redhat”,在操作系统版本(nrinfragent_os_version)中输入”6″。
---
- hosts: localhost
roles:
- role: nrinfragent
nrinfragent_license_key: #ライセンスキーを入力
nrinfragent_os_name: redhat
nrinfragent_os_version: 6
4. 运行Playbook
如果到了这一步,只需要执行使用3创建的Playbook即可。请不要忘记加上管理员权限选项(-s)!
$ ansible-playbook -s setup-infra.yml
~~~略~~~
PLAY RECAP *********************************************************************
localhost : ok=9 changed=7 unreachable=0 failed=0
在New Relic INFRASTRUCTURE界面上进行确认
当Playbook执行成功后,我们需要在New Relic Infrastructure界面上确认该主机是否被监控到!
最后
通过使用New Relic INFRASTRUCTURE Agent安装的Ansible角色,您现在可以非常容易地进行自动代理安装。与其他角色组合,可以配置在实例启动时运行用于代理安装的Ansible,从而大大减少部署的工作量。作为我们软件相关工作的一部分,我们提供云端性能监控服务“New Relic”。详情请参阅此处。