ElasticBeanstalk 服务器用户/组和 `git aws.push`

Posted

技术标签:

【中文标题】ElasticBeanstalk 服务器用户/组和 `git aws.push`【英文标题】:ElasticBeanstalk server users/groups and `git aws.push` 【发布时间】:2014-01-22 21:49:04 【问题描述】:

在运行git aws.push 时,如何指定 ElasticBeanstalk EC2 实例上的远程 Unix 用户来创建文件?

是否可以更改默认用户? 默认用户在哪里指定?

【问题讨论】:

【参考方案1】:

关于部署过程的说明:AWS Elastic Beanstalk 上没有 git 服务器。 aws.push 只是 shell 命令的包装器,它从本地存储库创建档案并将档案上传到 Elastic Beanstalk 服务器。它是为了方便而制作的。

Elastic Beanstalk 实例上的默认用户是ec2-user,属于同一组ec2-user

您可以使用.ebextensions/appname.config 的实例定制机制创建自己的groups 和users

语法:

users:
  <name of user>:
    groups:
      - <name of group>
    uid: "<id of the user>"
    homeDir: "<user's home directory>"

groups:
  <name of group>:
  <name of group>:
    gid: "<group id>"

例子:

users:
  myuser:
    groups:
      - group1
      - group2
    uid: "50"
    homeDir: "/tmp"

groups:
  groupOne:
  groupTwo:
    gid: "45"

关于实例定制的更多信息可以在Customizing the Software on EC2 Instances Running Linux找到

使用commands 操作EC2 实例上的文件/目录,使用container commands 操作您的应用程序文件/目录。

container_commands:
    10-change-owner:
        command: "chown myuser tmpfile"

    20-change-group:
        command: "chown :mygroup tmpfile"

【讨论】:

好的,但是如何使使用 git 推送到 ElasticBeanstalk 的文件属于我选择的特定用户,而不是默认情况下的“webapp”?也就是说,在使用git aws.push时如何利用.ebextensions/appname.config创建的用户? @AlexanderShcheblikin:更新了答案,提供了有关用户/组的更多信息。 现在我的问题是:这些 chown 命令是否在每个 git aws.push 之后运行? 无论您在 ebextensions/app.config 中使用哪种配置,它都会应用于每个部署,也就是 git aws.push。您只需配置一次。

以上是关于ElasticBeanstalk 服务器用户/组和 `git aws.push`的主要内容,如果未能解决你的问题,请参考以下文章

工具Cassandra 2.1正式发布,引入CQL3元组和用户定义类型

Elastic Beanstalk:允许用户部署

用户,组和权限

用户,组和权限管理

Linux系统 用户群组和权限

TFS 2017 版本 - 没有机器组和部署组