Не удается клонировать облачный репозиторий Google в Compute Engine

#node.js #google-compute-engine #google-source-repositories

#node.js #google-compute-engine #google-source-репозитории

Вопрос:

Я пытаюсь настроить проект узла в Google Compute Engine, следуя этому руководству: https://cloud.google.com/nodejs/getting-started/getting-started-on-compute-engine

В сценарии запуска все работает нормально до строки 27:

 git clone https://source.developers.google.com/p/${PROJECTID}/r/${REPOSITORY} /opt/app/new-repo
 

Когда скрипт пытается клонировать репозиторий, я получаю несколько ошибок в журнале:

INVALID_ARGUMENT: Request contains an invalid argument

message: "Invalid authentication credentials. Please generate a new identifier: https://source.developers.google.com/new-password"

fatal: unable to access 'https://source.developers.google.com/<path-to-repo>': The requested URL returned error: 400

Что может быть причиной этой ошибки и как я могу ее исправить? Я пытался исследовать аутентификацию при клонировании, но не нашел ничего, связанного со сценариями. Я посетил ссылку с новым паролем и попытался выполнить команду gitcookie на сервере, но это не помогло.

Сценарий запуска, который я использую, точно такой же, как в руководстве:

 set -v


# Talk to the metadata server to get the project id
PROJECTID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google")
REPOSITORY="new-repo"

# Install logging monitor. The monitor will automatically pick up logs sent to
# syslog.
curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash
service google-fluentd restart amp;

# Install dependencies from apt
apt-get update
apt-get install -yq ca-certificates git build-essential supervisor

# Install nodejs
mkdir /opt/nodejs
curl https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.gz | tar xvzf - -C /opt/nodejs --strip-components=1
ln -s /opt/nodejs/bin/node /usr/bin/node
ln -s /opt/nodejs/bin/npm /usr/bin/npm

# Get the application source code from the Google Cloud Repository.
# git requires $HOME and it's not set during the startup script.
export HOME=/root
git config --global credential.helper gcloud.sh
git clone https://source.developers.google.com/p/${PROJECTID}/r/${REPOSITORY} /opt/app/new-repo

# Install app dependencies
cd /opt/app/new-repo
npm install

# Create a nodeapp user. The application will run as this user.
useradd -m -d /home/nodeapp nodeapp
chown -R nodeapp:nodeapp /opt/app

# Configure supervisor to run the node app.
cat >/etc/supervisor/conf.d/node-app.conf << EOF
[program:nodeapp]
directory=/opt/app/new-repo
command=npm start
autostart=true
autorestart=true
user=nodeapp
environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production"
stdout_logfile=syslog
stderr_logfile=syslog
EOF

supervisorctl reread
supervisorctl update

# Application should now be running under supervisor
 

Ответ №1:

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

Если отсутствует, я бы предложил добавить роль roles/source.admin в вашу учетную запись, используя эти инструкции, а затем попробуйте запустить команду еще раз.

Комментарии:

1. Спасибо, это действительно была проблема с разрешением.