我是 AWS 的新手,并试图了解我应该在我的实例上安装哪个版本的 NGINX。我找到了多种选择;
在我的开发环境(Centos VM)中,我使用了sudo yum install nginx. 尝试了 EPEL 路线后,我没有得到相同的设置,特别是启用/可用的站点不是作为设置的一部分创建的。我想使用需要这些的nginxconfig.io。我应该为此使用哪个版本的 NGINX?
这是我在尝试运行时在 Amazon Linux 2 实例上得到的结果yum update。
您建议我使用--skip-broken还是等到 AWS 推出修复程序?
--> Processing Dependency: libuv >= 1:1.42.0 for package: 1:nodejs-16.13.2-8.el7.x86_64
--> Finished Dependency Resolution
Error: Package: 1:nodejs-16.13.2-8.el7.x86_64 (epel-testing)
Requires: libuv >= 1:1.42.0
Installed: 1:libuv-1.39.0-1.amzn2.x86_64 (@amzn2-core)
libuv = 1:1.39.0-1.amzn2
Available: 1:libuv-1.23.2-1.amzn2.0.2.i686 (amzn2-core)
libuv = 1:1.23.2-1.amzn2.0.2
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Run Code Online (Sandbox Code Playgroud) 我正在用来elastic beanstalk部署Django应用程序。我想SSH在EC2实例上执行一些 shell 命令,但环境变量似乎不存在。我通过 AWS GUI(配置 -> 环境属性)指定了它们,它们似乎在我的应用程序启动期间工作。
我尝试通过以下方式激活和停用虚拟环境:
source /var/app/venv/*/bin/activate
Run Code Online (Sandbox Code Playgroud)
是否有一些环境(或我可以运行的脚本)来访问设置了所有属性的环境?否则,我几乎无法运行任何命令,python3 manage.py ...因为没有配置设置模块(我知道如何手动指定它,但我的应用程序需要大约 7 个变量才能工作)。
我有一个部署到 Elastic Beanstalk Amazon Linux 2 AMI 的 Django 项目。我安装了 PyMySQL 以连接到数据库,并将这些行添加到 settings.py 中,如下所示;
import pymysql
pymysql.version_info = (1, 4, 6, "final", 0)
pymysql.install_as_MySQLdb()
Run Code Online (Sandbox Code Playgroud)
而且我还有一个用于迁移数据库的 .config 文件;
container_commands:
01_migrate:
command: "django-admin.py migrate"
leader_only: true
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: mysite.settings
Run Code Online (Sandbox Code Playgroud)
通常,我mysqlclient在我的 Linux AMI 上使用这个 .config 文件,但它在 Linux 2 AMI 上不起作用,所以我安装了 PyMySQL。现在,我正在尝试部署项目的更新版本,但出现如下错误;
Traceback (most recent call last):
File "/opt/aws/bin/cfn-init", line 171, in <module>
worklog.build(metadata, configSets)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 129, in build
Contractor(metadata).build(configSets, self)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 530, in build
self.run_config(config, worklog) …Run Code Online (Sandbox Code Playgroud) django pymysql amazon-elastic-beanstalk amazon-linux amazon-linux-2
无论出于何种原因,亚马逊将 R 移至所谓的“Extras Library”,因此您无法sudo yum install -y R再使用 R 安装。相反,你必须这样做sudo amazon-linux-extras install R3.4。结果,当最新的稳定版本是3.6.1时,我只能安装R 3.4.3,而且很多R库甚至无法安装,因为版本太低。有没有什么好的、干净的方法来安装最新版本的 R 并跳过 Amazon 的包管理器?谢谢!
如何在我的 amazon linux 2 上安装 snap?
我浏览了网络上的一些链接:
我似乎找不到在我的 amazon linux 2 机器上安装 snap 的正确说明。我以前做过,但我忘了我是怎么做的。
我之前在 AWS Linux AMI 上有过这个工作,但在 AWS Linux 2 上没有运气。
我需要在 EB 应用程序部署期间从 Nginx 配置文件访问我的环境属性。它是一个单实例节点服务器。
我使用 AWS Linux AMI 是这样做的,并且没有问题:
.ebextensions/00_options.config
option_settings:
aws:elasticbeanstalk:application:environment:
DOMAIN: socket.example.com
MASTER_DOMAIN: https://example.com
etc..
Run Code Online (Sandbox Code Playgroud)
.ebextensions/10_proxy.config
... some configs ...
files:
/etc/nginx/conf.d/proxy.conf:
mode: "000644"
owner: root
group: root
content: |
upstream nodejs {
server 127.0.0.1:8081;
keepalive 256;
}
map $http_origin $cors_header {
hostnames;
default "";
`{"Fn::GetOptionSetting": {"Namespace": "aws:elasticbeanstalk:application:environment", "OptionName": "MASTER_DOMAIN"}}` "$http_origin";
}
server {
listen 80;
listen 8080;
server_name `{"Fn::GetOptionSetting": {"Namespace": "aws:elasticbeanstalk:application:environment", "OptionName": "DOMAIN"}}`;
location ~ /.well-known { …Run Code Online (Sandbox Code Playgroud) nginx environment-variables amazon-web-services amazon-elastic-beanstalk amazon-linux-2
我用于 Docker 主机的 AmazonLinux2 AMI 似乎没有安装 AWS CLI。日志中有来自尝试运行aws命令的用户数据脚本的错误:
/var/lib/cloud/instance/scripts/part-001: line 7: aws: command not found
Run Code Online (Sandbox Code Playgroud)
然后我使用 SSH 连接到实例进行健全性检查,并且aws肯定找不到:
[ec2-user@ip-X-X-X-X ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
[ec2-user@ip-X-X-X-X ~]$ aws --version
-bash: aws: command not found
Run Code Online (Sandbox Code Playgroud)
我认为所有 AmazonLinux AMI 上都默认安装了 AWS CLI?我不记得以前需要自己安装它。
本文甚至说 CLI v1 已默认安装在 AmazonLinux2 上:
那么,怎么可能在这个库存 AMI 上找不到它呢?是否只有部分 AmazonLinux2 AMI 预装了 CLI?作为参考,我正在使用此 AMI:
amzn2-ami-minimal-hvm-2.0.20200917.0-x86_64-ebs (ami-0a6993b2978bd23cb)
我正在构建基于 amazonlinux:2.0.20210126.0 的 docker 映像,我的软件需要编译并需要 Python.h 和其他开发资源。我在我的 docker 文件中安装 python3.8:
RUN amazon-linux-extras enable python3.8
RUN yum install -y python3.8
Run Code Online (Sandbox Code Playgroud)
但在 amazonlinux 存储库上找不到任何 python3.8 的开发包。尝试寻找 python3.8-devel 或 libpython3.8-dev 但没有成功。
有人对 amazonlinux 有过类似的经历吗?
我正在将 Elastic Beanstalk 部署升级到 Linux2。多个.ebextensions脚本在新部署中失败。看来 的用法get_config已经改变。
旧脚本变量:
EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
EB_APP_PID_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir)
EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
Run Code Online (Sandbox Code Playgroud)
我能够在https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms-scripts.html找到前两个的替代品
新的脚本变量:
EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config platformconfig -k AppUser)
EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config platformconfig -k AppDeployDir)
Run Code Online (Sandbox Code Playgroud)
我找不到替代品
app_pid_dirscript_dirsupport_dir有人知道我应该用什么吗?
amazon-linux-2 ×10
amazon-ec2 ×3
django ×2
nginx ×2
amazon-linux ×1
aws-cli ×1
docker ×1
pymysql ×1
python-3.8 ×1
r ×1