Можно ли загрузить все файлы приложения в Cloud Foundry?
Можно ли загрузить файлы приложения на мой локальный компьютер, т.е. выполнить операцию, противоположную "push"?
4 ответа
Я использую этот простой скрипт для загрузки всех файлов журнала в моем приложении, вы можете настроить его, чтобы получить весь контент в папке приложения
mkdir -p <appName>/app/data/logs
for i in `cf files <appName> app/data/logs | awk '{print $1}'`;
do cf files <appName> app/data/logs/$i > <appName>/app/data/logs/$i; done
Если ваше приложение успешно завершило подготовку (т. Е. Пакет сборки был запущен и завершен), вы сможете загружать дроплет, созданный CF. Это будет среди прочего содержать код вашего приложения.
Пример:
$ cf app <app-name> --guid
2836d5fe-35f7-4409-b27b-4ed308152bb4
$ cf curl /v2/apps/2836d5fe-35f7-4409-b27b-4ed308152bb4/droplet/download > my-droplet
Смотрите также https://apidocs.cloudfoundry.org/2.6.0/apps/downloads_the_bits_for_an_app.html & http://v3-apidocs.cloudfoundry.org/version/3.50.0/
ОБНОВЛЕНИЕ (13/07/2018)
Есть и сейчас cf local
, который является плагином CF Cli, который делает несколько вещей. Одна из вещей, которую он позволяет вам делать - это легко экспортировать и импортировать капли. Это, вероятно, самый простой способ сделать это в будущем.
Последние версии cf
( Интерфейс командной строки Cloud Foundry) делает это проще с помощью плагина загрузки: https://github.com/ibmjstart/cf-download
Более подробная информация от одного из авторов на http://blog.ibmjstart.net/2015/05/22/cf-download/
Редактировать Как указал Дхарми, это не работает с бэкэндом Диего https://github.com/ibmjstart/cf-download/issues/12
Хорошо, чувак. У меня была такая же проблема. Самый простой способ - это SCP через SSH.
Чтобы сделать это как можно более простым, я сделал следующие шаги.
В конце концов, я полагаю, что у вас уже был установлен Cf cli в вашей среде. Посмотрите, как это сделать: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
Теперь, чтобы войти в Cloud Foundry SSH, нам нужно сделать следующее:
- Включите ssh в вашем приложении IBM
- Получите SSH-хост
- Получите пользователя
- Получить пароль
Шаг 01 - Включите SSH
См. Официальные ссылки: https://docs.cloudfoundry.org/devguide/deploy-apps/ssh-apps.html
Откройте CMD или напишите терминал:
> cf login - это похоже на бла-бла-бла
> cf enable-ssh имя-приложения
Вы действительно хотите знать название приложения! Это основы...
Шаг 2 - Получите хост сервера
Ну... если мне нужно объяснить, что такое ssh-хост, лучше откатиться отсюда. Если нет, запустите команду (небольшая шутка):
cf curl /v2 / информация
"app_ssh_endpoint": "ssh.MY-DOMAIN.com:2222"
Результат - json с множеством атрибутов. Скопируйте поле под названием "app_ssh_endpoint". Обратите внимание, что после ":" это порт ssh для заполнения формы Winscp или команды терминала.
Шаг 3 - Свяжите свое имя пользователя
Имя пользователя состоит из "cf:" + "GUID" + "/" + "InstanceID".
Чтобы получить GUID, запустите команду терминала:
cf app MY-AWESOME-APP --guid
Вернуть длинный идентификатор, например: abcdefab-1234-5678-abcd-1234abcd1234
Идентификатор экземпляра - это порядковый номер экземпляра вашего приложения. Первый экземпляр приложения становится с "0".
Итак, у нас есть cf:my-guid-result/0 в качестве имени пользователя.
Шаг 4 - Получите временный пароль
На этом шаге используется одноразовый проход. Это! Вы используете только один раз пропуск. Буууут... вы можете выполнять эту команду каждый раз, когда вы подключаетесь к серверу или выполняете команды.
Чтобы получить команду pass run terminal:
cf ssh-код
Вернуть маленький пароль: abcdefab
После этого я рекомендую:
Если вы хотите загрузить целую папку "app /", как я, сожмите ее и загрузите с помощью графического интерфейса winSCP или через терминал с помощью команды "scp".
Это не интуитивно понятно, но это возможно. Желаю удачи.
Я написал этот Ruby Gist некоторое время назад, он все еще должен работать с небольшими изменениями или как есть..