Tidak dapat menginstal CodeDeploy dalam instance Lightsail dengan Amazon Linux 2
Karena tidak terlalu puas dengan hanya dapat menggunakan Amazon Linux (ingin menggunakan Amazon Linux 2 juga), membuat dua contoh menggunakan kedua versi OS dan menambahkan skrip yang sama
mkdir /etc/codedeploy-agent/
mkdir /etc/codedeploy-agent/conf
cat <<EOT >> /etc/codedeploy-agent/conf/codedeploy.onpremises.yml
---
aws_access_key_id: ACCESS
aws_secret_access_key: SECRET
iam_user_arn: arn:aws:iam::525221857828:user/GeneralUser
region: eu-west-2
EOT
wget https://aws-codedeploy-us-west-2.s3.us-west-2.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
Perbedaan yang saya catat antara keduanya adalah bahwa dalam contoh yang memiliki Linux 2, folder /etc/codedeploy-agent/conf/hanya memiliki satu file
dan di Linux memiliki dua file
Mengetahui hal ini, saya membuat file baru di instance Linux 2 dengan nama yang sama
touch codedeployagent.yml
, mengubah izinnya dari
-rw-r--r-- 1 root root 261 Oct 2 10:43 codedeployagent.yml
untuk
-rwxr-xr-x 1 root root 261 Oct 2 10:43 codedeployagent.yml
, dan menambahkan konten yang sama
:log_aws_wire: false
:log_dir: '/var/log/aws/codedeploy-agent/'
:pid_dir: '/opt/codedeploy-agent/state/.pid/'
:program_name: codedeploy-agent
:root_dir: '/opt/codedeploy-agent/deployment-root'
:verbose: false
:wait_between_runs: 1
:proxy_uri:
:max_revisions: 5
lalu boot ulang mesin. Namun, ini tidak memperbaiki masalah seperti saat saya menjalankan
sudo service codedeploy-agent status
akan tetap mendapatkan
Mengalihkan ke / bin / systemctl status codedeploy-agent.service Unit codedeploy-agent.service tidak dapat ditemukan.
Juga memastikan semua pembaruan ada, me-reboot mesin tetapi itu juga tidak berhasil.
Jawaban
Saya dapat memberikan detail penyiapan saya untuk instans Amazon Linux 2 untuk menerapkan CodeDeployGitHubDemo (berdasarkan pertanyaan sebelumnya ).
1. Agen CodeDeploy
Gunakan yang berikut ini sebagai UserData(Anda mungkin perlu menyesuaikan wilayah jika tidak us-east-1):
#!/bin/bash
yum update -y
yum install -y ruby wget
cd /home/ec2-user
wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install
chmod +x ./install
./install auto
Itu tidak membutuhkan kredensial pengkodean keras. Berikut ini berfungsi dengan baik pada Amazon Linux 2contoh yang saya gunakan.
2. Peran instance
Instance Anda membutuhkan peran yang sesuai untuk CodeDeploy. Saya menggunakan peran instans EC2 dengan kebijakan yang tercantum di sini :
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
3. Kelompok penyebaran
Saya memiliki tiga contoh untuk pengujian dalam grup AutoScaling, yang disebut myasg:
4. Penerapan
Saya menerapkan dari S3 tanpa Load Balancer:
5. Hasil
Tidak ada masalah yang ditemukan dan penerapan berhasil:
Dan situs web yang berjalan (perlu membuka port 80 di grup keamanan):
Memperbarui
Untuk instalasi manual di Amazon Linux 2. Anda bisa sudo su -menjadi root setelah login.
mkdir -p /etc/codedeploy-agent/conf
cat <<EOT >> /etc/codedeploy-agent/conf/codedeploy.onpremises.yml
---
aws_access_key_id: ACCESS
aws_secret_access_key: SECRET
iam_user_arn: arn:aws:iam::525221857828:user/GeneralUser
region: eu-west-2
EOT
yum install -y wget ruby
wget https://aws-codedeploy-us-west-2.s3.us-west-2.amazonaws.com/latest/install
chmod +x ./install
env AWS_REGION=eu-west-2 ./install rpm
Untuk memeriksa statusnya:
systemctl status codedeploy-agent
Dengan ini Anda harus mendapatkan sesuatu seperti ini
● codedeploy-agent.service - AWS CodeDeploy Host Agent
Loaded: loaded (/usr/lib/systemd/system/codedeploy-agent.service; enabled; vendor prese
t: disabled)
Active: active (running) since Sat 2020-10-03 07:18:57 UTC; 3s ago
Process: 3609 ExecStart=/bin/bash -a -c [ -f /etc/profile ] && source /etc/profile; /opt
/codedeploy-agent/bin/codedeploy-agent start (code=exited, status=0/SUCCESS)
Main PID: 3623 (ruby)
CGroup: /system.slice/codedeploy-agent.service
├─3623 codedeploy-agent: master 3623
└─3627 codedeploy-agent: InstanceAgent::Plugins::CodeDeployPlugin::CommandPo...
Oct 03 07:18:57 ip-172-26-8-137.eu-west-2.compute.internal systemd[1]: Starting AWS Cod...
Oct 03 07:18:57 ip-172-26-8-137.eu-west-2.compute.internal systemd[1]: Started AWS Code...
Hint: Some lines were ellipsized, use -l to show in full.
Jika Anda lari
sudo service codedeploy-agent status
Anda akan mendapatkan (artinya itu berfungsi seperti yang diharapkan)
The AWS CodeDeploy agent is running as PID 3623
Untuk memulai jika tidak berjalan:
systemctl start codedeploy-agent