С помощью шаблонов блокчейнов AWS я развернул сеть блокчейнов Ethereum на AWS. https://docs.aws.amazon.com/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html
Теперь я хотел настроить IPFS (Межпланетную файловую систему) в той же сети Ethereum, поэтому я изменил шаблоны, добавил AWS :: CloudFormation :: Init в шаблон autoscalegroup и попытался выполнить работающий и протестированный сценарий bash через него.
AWS::CloudFormation::Init:
config:
files:
'/tmp/IPFS_install.sh':
content: |
#!/bin/bash -e
sudo yum install wget -y;
wget https://dist.ipfs.io/go-ipfs/v0.4.17/go-ipfs_v0.4.17_linux-amd64.tar.gz;
tar -xzvf go-ipfs_v0.4.17_linux-amd64.tar.gz;
cd /go-ipfs
sudo ./install.sh;
ipfs init;
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["GET", "POST"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
ipfs daemon &
sleep 20
ipfs bootstrap rm --all
exit
mode: '000755'
owner: root
group: root
commands:
install_ipfs:
command: /tmp/IPFS_install.sh
Тот же сценарий работает абсолютно нормально при выполнении вручную на экземпляре EC2 с точно такими же разрешениями, но при выполнении через шаблон CF происходит сбой @ ipfs init; с ошибкой ipfs: команда не найдена .
Найдите журнал cfn-init ниже:
[DEBUG] CloudFormation client initialized with endpoint
https://cloudformation.us-west-2.amazonaws.com
2018-10-16 07:22:20,288 [DEBUG] Describing resource ABC in stack XYZ
2018-10-16 07:22:20,402 [INFO] -----------------------Starting build--------
---------------
2018-10-16 07:22:20,402 [DEBUG] Not setting a reboot trigger as scheduling
support is not available
2018-10-16 07:22:20,403 [INFO] Running configSets: default
2018-10-16 07:22:20,404 [INFO] Running configSet default
2018-10-16 07:22:20,404 [INFO] Running config config
2018-10-16 07:22:20,404 [DEBUG] No packages specified
2018-10-16 07:22:20,405 [DEBUG] No groups specified
2018-10-16 07:22:20,405 [DEBUG] No users specified
2018-10-16 07:22:20,405 [DEBUG] No sources specified
2018-10-16 07:22:20,405 [DEBUG] Writing content to /tmp/IPFS_install.sh
2018-10-16 07:22:20,405 [DEBUG] Setting mode for /tmp/IPFS_install.sh to 000755
2018-10-16 07:22:20,405 [DEBUG] Setting owner 0 and group 0 for /tmp/IPFS_install.sh
2018-10-16 07:22:20,405 [DEBUG] Running command install_ipfs
2018-10-16 07:22:20,406 [DEBUG] No test for command install_ipfs
2018-10-16 07:22:25,301 [ERROR] Command install_ipfs (/tmp/IPFS_install.sh) failed
2018-10-16 07:22:25,301 [DEBUG] Command install_ipfs output: Loaded plugins: priorities, update-motd, upgrade-helper
.
.
.
.
2018-10-16 07:22:24 (10.5 MB/s) - ‘go-ipfs_v0.4.17_linux-amd64.tar.gz’ saved [10726868/10726868]
go-ipfs/build-log
go-ipfs/install.sh
go-ipfs/ipfs
go-ipfs/LICENSE
go-ipfs/README.md
Moved ./ipfs to /usr/local/bin
/tmp/IPFS_install.sh: line 7: ipfs: command not found
2018-10-16 07:22:25,301 [ERROR] Error encountered during build of config: Command install_ipfs failed
Попытка установить владельца и группу для ec-user, но вывод один и тот же. Также я где-то читал, что cfn-init запускается от имени пользователя root, поэтому решил использовать владельца и группу в качестве пользователя root.
Я действительно хочу, чтобы это сработало, любая помощь в решении этой проблемы очень ценится.
Заранее спасибо за вашу поддержку.