AWS :: CloudFormation :: Init - Невозможно настроить IPFS с помощью скрипта bash - PullRequest
0 голосов
/ 29 октября 2018

С помощью шаблонов блокчейнов 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.

Я действительно хочу, чтобы это сработало, любая помощь в решении этой проблемы очень ценится.

Заранее спасибо за вашу поддержку.

...