如何通过 Ansible 在 AWS EC2 实例上部署 Consul
Posted
技术标签:
【中文标题】如何通过 Ansible 在 AWS EC2 实例上部署 Consul【英文标题】:How to deploy Consul on AWS EC2 instance over Ansible 【发布时间】:2019-11-06 05:08:46 【问题描述】:注意:这不是 HashiCorp 的 Consul,这是一个不同的项目:http://consulproject.org/
我不确定这是否是 consul 项目的特定问题,或者是否有任何了解 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 [path to .pem file] ec2-user@[ip address of EC2 instance] SSH 进入服务器
我已经安装了 Ansible。当我跑步时:
sudo ansible-playbook -v consul.yml -i hosts
"请以用户\"ec2-user\"而不是用户身份登录 \"根\"。\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
【问题讨论】:
【参考方案1】:不要使用sudo
运行ansible-playbook
命令。如果 playbook 中的任务需要 root 访问权限(在远程/托管主机上),则在必要时添加 become: true
(即在任务级别、播放级别或您的 Ansible 配置中)
【讨论】:
【参考方案2】:我需要更新 ansible_user。 为此,我将此行添加到 group_vars/all 文件中
ansible_user: ec2-user
【讨论】:
以上是关于如何通过 Ansible 在 AWS EC2 实例上部署 Consul的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Ansible 创建 AWS ec2 密钥 | Linux 中国
如何在 AWS EC2 实例上预安装 sbt(通过用户数据)?