Closed6
EC2のプロビジョニング
個人的に以下がEC2プロビジョニングおよびAMI作成のベストプラクティス
- PackerのAnsibleプロビジョナーを使ってプロビジョニング&AMI作成
- ローカルはVagrantで開発
- テストはGoss
難点は時間がかかることだけどそれ以外はとても良い感じ
久しぶりにこの構成でプロビジョニングするので最新バージョンのAnsible、Packer、Vagrantでの奮闘記録を連ねていこう
いきなりvagrant up
でこけたw
==> app: Running provisioner: ansible_local...
app: Installing Ansible...
app: Installing pip... (for Ansible installation)
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
curl https://bootstrap.pypa.io/get-pip.py | sudo python
Stdout from the command:
ERROR: This script does not work on Python 2.7 The minimum supported Python version is 3.6. Please use https://bootstrap.pypa.io/2.7/get-pip.py instead.
Stderr from the command:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1882k 100 1882k 0 0 806k 0 0:00:02 0:00:02 --:--:-- 806k
Python3で実行するためにはshell
プロビジョナーでインストールする必要がありそう
config.vm.provision "shell", inline: "dnf install -y python3-pip && pip3 install --upgrade ansible==2.10.4"
おや?
==> app: Running provisioner: shell...
app: Running: inline script
app: /tmp/vagrant-shell: line 1: dnf: command not found
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
あー、dnf
のままになってただけかw
OSがAmazonLinux2なのでyum
に直したらちゃんと動いた!
と思ったらまたエラー\(^o^)/
app: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-1vvm78yl/cryptography/
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
Vagrantfile
内でAnsibleのインストールを以下のように修正したらうまくいった
という感じで今まで通りansible2.9
でやってく感じにしますか
config.vm.provision "shell", inline: <<-SHELL
sudo yum -y update
sudo amazon-linux-extras install ansible2
SHELL
このスクラップは2024/04/22にクローズされました