首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >封隔器和抗SSH/Sudo

封隔器和抗SSH/Sudo
EN

Stack Overflow用户
提问于 2016-09-26 21:53:59
回答 3查看 3.1K关注 0票数 3

我正在尝试设置packer和ansible-remote,以便基于我先前存在的ansible脚本创建一个AMI。我遇到了两个问题之一。

首先,我在SSH上遇到了一个问题,在那里我收到了SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh。我在我的ansible配置中添加了connection: local,它似乎解决了这个问题。

现在,我遇到了一个来自Ansible的sudo: a password is required问题。我不清楚为什么我指定的用户可以使用NOPASSWD进行sudo访问,并且我已经通过使用临时键的packer设置进行连接来验证这一点。我收到了以下错误,并尝试将ansible_become_useransible_become_pass作为vars传递给packer,但没有运气。现在看来,它可能是在试图对抗我的本地连接,但需要密码吗?有什么好办法把它设置好吗。

包装机:

代码语言:javascript
复制
{
  "variables": {
    "aws_access_key": "",
    "aws_secret_key": ""
  },
  "builders": [{
    "type": "amazon-ebs",
    "access_key": "{{user `aws_access_key`}}",
    "secret_key": "{{user `aws_secret_key`}}",
    "region": "us-east-1",
    "subnet_id": "subnet-56343453",
    "source_ami": "ami-61bbf104",
    "instance_type": "t2.micro",
    "ssh_username": "centos",
    "ssh_pty" : true,
    "ami_name": "packer-example {{timestamp}}"
  }],
  "provisioners": [
    {
      "type": "shell",
      "inline": ["sudo sed -i 's/requiretty/!requiretty/' /etc/sudoers"]
    },
    {
      "type": "ansible",
      "playbook_file": "../config/site/packer.yml",
      "user": "centos",
      "ansible_env_vars": [ "ansible_become_user=centos", "ansible_become_pass=packer", "ANSIBLE_HOST_KEY_CHECKING=False", "ANSIBLE_SSH_ARGS='-o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s'" ]
    }
  ]
}

Ansible:

代码语言:javascript
复制
---
  - name: run base centos playbooks
    hosts: all
    connection: local
    become: true
    roles:
     - base_centos7
EN

回答 3

Stack Overflow用户

发布于 2017-08-24 02:10:08

代码语言:javascript
复制
SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh

此错误是通过使用ansible_python_解释器=/usr/bin/python 3来修正的。

由于packer生成库存文件,最好的方法是创建一个ubuntu16不可用组,并在group_vars中将ansible_python_interpreter设置为/usr/bin/python3 3

不幸的是,这看起来像是一个连接问题。因为我花了几个小时才修好它。

票数 1
EN

Stack Overflow用户

发布于 2017-10-31 15:32:38

sudo密码问题将完全取决于源AMI ("source_ami":“ami-61bbf 104”)。

如果AMI是自我管理的,则需要确保使用'centos‘的用户具有sudo的能力,并提供其他安全性(ssh键),您可以删除密码。或者,您可以使用标志‘-询问-成为-传球’时运行ansible,我不知道这将如何与封隔器的工作。

如果AMI是一个AWS托管映像,我建议在Packer中使用'ec2-user‘,然后在映像上配置具有公共角色的用户,并使用’image _user‘与相关用户一起应用配置。

有用的链接:

  • http://docs.ansible.com/ansible/latest/become.html
票数 0
EN

Stack Overflow用户

发布于 2016-10-03 15:55:19

我不认为您需要在那里的用户中心,因为您已经连接作为centos用户。

阿尔瓦罗

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39713006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档