如何通过Ansible在AWS EC2实例上部署Consul

时间:2019-11-06 05:08:46

标签: amazon-ec2 ansible

注意:这不是HashiCorp的领事,它是一个不同的项目:http://consulproject.org/

我不确定这是否是领事项目的特定问题,还是不确定具有Ansible和EC2知识的人是否能够解决该问题。

我正在尝试通过安装程序将Consul实例部署到Amazon EC2实例。我已按照此处的说明进行操作:https://github.com/consul/installer

我是从运行macOS Sierra 10.12.6的Mac上执行此操作的,该Mac上安装了Python 2.7。

我从AWS下载了.pem文件,这是用于SSH身份验证的私钥。我可以通过ssh -i [.pem文件的路径] ec2-user @ [EC2实例的IP地址] SSH进入服务器。

我已经安装了Ansible。当我跑步时:

sudo ansible-playbook -v consul.yml -i hosts
  

“请以用户\“ ec2-user \”而不是用户身份登录   \“ root \”。\ r \ n \ r \ n“

但是,我已经编辑了group_vars / all文件以包含root_access:false,因此我不确定是否还需要执行其他操作。

我的git diff从存储库中看起来像这样:

diff --git a/group_vars/all b/group_vars/all
index 85bf74d..cb3db37 100644
--- a/group_vars/all
+++ b/group_vars/all
@@ -10,10 +10,10 @@ locale: en_US.UTF-8
 # General settings
 env: production
-root_access: true
-deploy_user: deploy
+root_access: false
+deploy_user: ec2-user
 home_dir: "/home/{{ deploy_user }}"
-deploy_password: test
+deploy_password: <some really great password>
 deploy_app_name: test
 deploy_server_hostname: 127.0.0.1
 consul_dir: "{{ home_dir }}/consul"
@@ -27,7 +27,7 @@ shared_public_dirs:
   - "system"
   - "ckeditor_assets"
-ssh_public_key_path: "~/.ssh/id_rsa.pub"
+ssh_public_key_path: "[path to .pem file]"
 # Ruby
 ruby_version: 2.4.9

2 个答案:

答案 0 :(得分:0)

请勿使用ansible-playbook运行sudo命令。如果剧本中的任务需要root访问(在远程/托管主机上),则在必要时(即在任务级别,播放级别或您的Ansible配置中)添加become: true

答案 1 :(得分:0)

我需要更新ansible_user。 为此,我将这一行添加到group_vars / all文件中

ansible_user: ec2-user