繁体   English   中英

使用 CloudFormation 在机器启动期间添加用户

[英]Adding a user during startup of a machine using CloudFormation

我正在尝试在 Linux 机器启动后使用 CloudFormation 创建用户。 我使用以下代码来这样做:

  Metadata:
  AWS::CloudFormation::Init:
    config:
      groups:
        ansible: {}
      users:
        ansible:
          groups:
            - "ansible"
          homeDir: "/home/ansible"
      files:
        /home/ansible/.ssh/authorized_keys:
          content: !Sub |
            '{{ resolve:secretsmanager:
              arn:aws:secretsmanager:eu-central-1:account:secret:secretname:
                SecretString:
                  secretstringpath }}'
          mode: "000644"
          owner: "ansible"
          group: "ansible"
Properties:
  UserData:
    Fn::Base64: !Sub |
      #!/bin/bash -xe
      yum update -y
      yum install -y aws-cfn-bootstrap
      /opt/aws/bin/cfn-init -v \
        --stack ${AWS::StackName} \
        --resource LinuxEC2Instance \
        --region ${AWS::Region}

但是,在启动过程中,我收到以下错误消息:

[ 96.72999017] cloud-init [2959]:构建期间发生错误:无法添加用户 ansible

这个错误是什么意思? 它似乎没有像我那样按预期工作......

在您可以将用户分配到自定义组之前,您必须创建此类组。

为此, AWS::CloudFormation::Init中有选项。

例如:

groups: 
  ansible: {}

对于遇到Error occurred during build: Failed to add user错误的人,我设法通过创建第二个配置并在其中创建用户来解决这个问题:

  Metadata:
  AWS::CloudFormation::Init:
  configSets: 
    ascending: 
      - "config1"
      - "config2"
    descending: 
      - "config2"
      - "config1"
    config1:
      groups:
        ansible: {}
    config2:
      users:
        ansible:
          groups:
            - "ansible"
          homeDir: "/home/ansible"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM