Amazon Linux 环境搭建问题补充
几年前写过 Amazon Linux 搭建开发环境及常用软件 , 如今部分内容有些过时 , 还有一些内容需要进行补充
EC2 Docker 安装
按照之前的安装流程会报 docker-ce 找不到 .这里按照 官方文档 安装
更新 yum
1 | sudo yum update -y |
安装 docker
1 | sudo yum install docker |
开启 docker 服务
1 | sudo service docker start |
将默认 ec2-user
账号到 docker
组 , 使命令执行时不必强制用 sudo
1 | sudo usermod -a -G docker ec2-user |
其他命令和 之前的文章 一样
docker-compose 安装
版本有所更新
下载
1 | sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
赋予可执行权限给下载的二进制文件
1 | sudo chmod +x /usr/local/bin/docker-compose |
创建一个符号链接,将docker-compose
命令链接到/usr/bin
目录,以便可以全局访问:
1 | sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
验证安装结果
1 | docker-compose --version |
telnet
默认是没有安装的 , 需要安装
1 | yum -y install telnet |
验证
1 | telnet www.sina.com.cn 80 |
退出
很多时候 telnet 完后就无法退出了 , ctrl + c 也无法退出
应该用 ctrl
+ ]
, 然后在命令行输入quit
就可以正常退出了
crontab
默认是未安装的
1 | # 安装之前,先删除 |
在 root 用户下输入 crontab -e
输入周期及脚本
1 | 0 0 15 * * 脚本.sh |
1 | # 查看定时任务列表 |
Ec2 Root 登录
通常为了安全是用 pem 登录 , 但是用 root + pem 登录时会提示 Please login as the user \"ec2-user\" rather than the user \"root\".
是 AWS 强制要求用 ec2-user
账号登录然后有需求再切换到 root
.
我们可以修改配置来使 root 可以正常登录
修改 ~/.ssh/authorized_keys
文件
在 authorized_keys 文件中,除去命令前缀而仅保留 ssh-rsa 语句。 例如,将以下缺省内容:
1 | no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login |
更改为以下内容
1 | ssh-rsa <content of sshkey> |
再修改 cloud-init
配置文件
确保 /etc/cloud/cloud.cfg
文件中存在下列各行:
1 | disable_root: false |
更新 /etc/ssh/sshd_config 文件。
1 | PermitRootLogin yes |
重启 sshd
1 | sudo service sshd restart |
Docker 部署的MySQL版本修改问题
在部署时修改过镜像版本 , 由 8.0 -> 8.2 导致账号访问不了数据库 , 查阅后得知是部署文件有差异导致 , 删除之前的 volume 重新部署即可
Docker 部署的 MySQL root无法远程连接
这里修改
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
发现仍然无法访问
最后创建新账号 , 赋予业务数据库权限 , 修改登录方式 ,密码插件解决 , 具体参考 之前文章