Почему среда Jelastic не работает при использовании postgres9 в jps? - PullRequest
0 голосов
/ 03 ноября 2018

Я создал файл jps, используя документацию https://docs.jelastic.com/application-manifest.

Но нет четкой документации для использования PostgreSQL.

Jelastic JPS Node:

{
    "nodeType": "postgres9",
    "restart": false,
    "database": {
        "name": "xxxx",
        "user": "xxx",
        "dump": "xxx.sql"
    }
}

Ошибка при настройке среды,

"data": {
    "result": 11005,
    "source": "marketplace",
    "error": "database query error: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=10.101.3.225)(port=3306)(type=master) : Connection refused (Connection refused)"
}

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

{
    "jpsVersion": "0.1",
    "jpsType": "install",
    "application": {
        "id": "xxx",
        "name": "xxx",
        "version": "0.0.1",
        "logo": "http://example.com/img/logo.png",
        "type": "php",
        "homepage": "http://example.com/",
        "description": {
            "en": "xxx"
        },
        "env": {
            "topology": {
                "ha": false,
                "engine": "php7.2",
                "ssl": false,
                "nodes": [
                    {
                        "extip": false,
                        "count": 1,
                        "cloudlets": 16,
                        "nodeType": "nginxphp"
                    },
                    {
                        "extip": false,
                        "count": 1,
                        "cloudlets": 16,
                        "nodeType": "postgres9"
                    }
                ]
            },
            "upload": [
                {
                   "nodeType": "nginxphp",
                   "sourcePath": "https://example.com/xxx.conf",
                   "destPath": "${SERVER_CONF_D}/xxx.conf"
                }
            ],
            "deployments": [
                {
                    "archive": "https://example.com/xxx.zip",
                    "name": "xxx.zip",
                    "context": "ROOT"
                }
            ],
            "configs": [
                {
                    "nodeType": "nginxphp",
                    "restart": true,
                    "path": "${SERVER_CONF_D}/xxx.conf",
                    "replacements": [
                        {
                           "pattern":"/usr/share/nginx/html",
                           "replacement":"${SERVER_WEBROOT}"
                        }
                    ]
                },
                {
                    "nodeType": "postgres9",
                    "restart": false,
                    "database": {
                        "name": "xxx",
                        "user": "xxx",
                        "dump": "https://example.com/xxx.sql"
                    }
                }, {
                    "restart": false,
                    "nodeType": "nginxphp",
                    "path": "${SERVER_WEBROOT}/ROOT/server/php/config.inc.php",
                    "replacements": [{
                            "replacement": "${nodes.postgres9.address}",
                            "pattern": "localhost"
                        }, {
                            "replacement": "${nodes.postgres9.database.password}",
                            "pattern": "xxx"
                        }
                    ]
                }
            ]
        },
        "success": {
            "text": "Installation completed. username: admin and password: xxx"
        }
    }
}

1 Ответ

0 голосов
/ 16 ноября 2018

Поскольку действия для Postgres отключены ( Действие выполняется только для контейнеров mysql5, mariadb и mariadb10 ), мы улучшили ваш манифест на основе последних обновлений. Был использован Yaml, потому что он более понятен для чтения и понимания:

jpsVersion: 0.1
jpsType: install
name: xxx
version: 0.0.1
logo: http://example.com/img/logo.png
engine: php7.2
nodes:
  - cloudlets: 16
    nodeType: nginxphp
  - cloudlets: 16
    nodeType: postgres9
onInstall:
  - upload [nginxphp]:
      sourcePath: https://example.com/xxx.conf
      destPath: ${SERVER_CONF_D}/xxx.conf
  - deploy:
      archive: https://example.com/xxx.zip
      name: xxx.zip
      context: ROOT
  - replaceInFile [nginxphp]:
      path: ${SERVER_CONF_D}/xxx.conf
      replacements:
      - pattern: /usr/share/nginx/html
        replacement: ${SERVER_WEBROOT}
  - restartNodes [nginxphp]
  - replaceInFile [nginxphp]:
      path: ${SERVER_WEBROOT}/ROOT/server/php/config.inc.php
      replacements:
      - pattern: localhost
        replacement: ${nodes.postgres9.address}
      - pattern: xxx
        replacement: ${nodes.postgres9.password}
  - cmd [postgres9]: printf "PGPASSWORD=${nodes.postgres9.password};\nexport PGPASSWORD;\npsql postgres webadmin -c \"CREATE DATABASE Jelastic;\"\n" > /tmp/createDb
  - cmd [postgres9]: chmod +x /tmp/createDb && /tmp/createDb
success: Installation completed. username admin and password xxx

Обратите внимание, что вы можете отлаживать каждое действие на вкладке /console

.
...