Installation BaaS de l'API

Edge pour Private Cloud version 4.16.09

Utiliser un équilibreur de charge

Une installation de production d'API BaaS utilise un équilibreur de charge entre le nœud du portail BaaS de l'API et les nœuds de la pile BaaS de l'API. Lors de la configuration du portail, vous devez spécifier l'adresse IP ou le nom DNS de l'équilibreur de charge, et non celui des nœuds de pile.

Au lieu d'un équilibreur de charge, vous pouvez utiliser un DNS à tour de rôle. Dans ce scénario, vous créez une entrée DNS avec plusieurs enregistrements A correspondant aux adresses IP de la pile BaaS. Lors d'une résolution DNS, le serveur DNS renvoie automatiquement les valeurs d'enregistrement A à tour de rôle.

Se connecter à Cassandra

Lors de l'installation du BaaS, vous pouvez choisir de connecter BaaS et Edge au même cluster Cassandra, ou créer un cluster Cassandra distinct pour BaaS. Les installations BaaS de petite taille, c'est-à-dire celles dont le volume de trafic est faible, partagent souvent un cluster Cassandra avec Edge.

Pour optimiser le débit et la disponibilité, ou pour séparer les clusters Cassandra en différentes zones réseau, Apigee vous recommande d'utiliser des clusters Cassandra distincts. Les clusters distincts maximisent les performances si vous rencontrez des charges de trafic importantes sur BaaS.

Synchronisation des dates

La date et l'heure doivent être synchronisées sur tous les serveurs. S'il n'est pas déjà configuré, l'utilitaire "ntpdate" peut remplir cet objectif, qui vérifie si les serveurs sont synchronisés avec l'heure. Vous pouvez exécuter la commande "yum install ntp" pour installer l'utilitaire.

Sécurité Tomcat

Le programme d'installation des API BaaS installe également le serveur Apache Tomcat sur tous les nœuds de pile BaaS de l'API, y compris l'interface utilisateur de l'administrateur Tomcat. Le programme d'installation ne modifie pas les identifiants d'administrateur par défaut définis pour "admin:admin".

Si nécessaire, vous pouvez modifier ces identifiants dans le cadre de la sécurisation de Tomcat. Pour en savoir plus, consultez les pages suivantes:

Présentation de l'installation

Après avoir installé Edge l'utilitaire apigee-setup sur un nœud, utilisez-le pour installer un ou plusieurs composants BaaS sur le nœud. L'utilitaire apigee-setup se présente sous la forme suivante:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

Transmettez à l'utilitaire apigee-setup un fichier de configuration contenant les informations sur l'installation. S'il manque les informations requises dans le fichier de configuration, l'utilitaire apigee-setup vous invite à les saisir sur la ligne de commande.

La seule condition requise est que le fichier de configuration soit accessible ou lisible par l'utilisateur "apigee".

Par exemple, exécutez la commande suivante pour installer la pile BaaS de l'API:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

L'utilitaire Apigee setup.sh prend en charge plusieurs options pour installer les composants d'API BaaS. Les instructions ci-dessous utilisent les options autonomes (c, e, b et p), mais vous pouvez utiliser différentes options en fonction de la configuration de votre nœud:

Option

Description

e

Installez uniquement ElasticSearch.

b

Installer uniquement la pile BaaS de l'API, qui installe également Tomcat.

p

N'installez que le portail BaaS de l'API, ce qui installe également le routeur Nginx en tant que serveur Web.

c

Installez Cassandra uniquement.

eb

Installez ElasticSearch, la pile BaaS de l'API et Tomcat sur le nœud.

ebp

Installer ElasticSearch, le portail BaaS de l'API, la pile d'API BaaS et Tomcat Le portail est tellement léger qu'aucune ressource supplémentaire n'est nécessaire pour cela.

ASA

Installez tous les composants de l'API sur un seul nœud (Cassandra, Elasticsearch, API BaaS Stack et portail BaaS de l'API). N'utilisez cette option que pour le développement et les tests, et non pour la production.

Créer un fichier de configuration silencieux

Vous trouverez ci-dessous un exemple de fichier de configuration silencieuse pour une installation d'API BaaS à 10 nœuds. Modifiez ce fichier si nécessaire pour votre configuration. Utilisez l'option -f pour setup.sh afin d'inclure ce fichier.

# Specify IP address or DNS name of node.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWrod

# Only if you are installing Cassandra.
# Specify Cassandra configuration information.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

# ElasticSearch IPs or DNS names, separated by spaces.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

Le tableau suivant contient des informations supplémentaires sur ces propriétés:

Propriété

Remarque

CASS_HOSTS

Si vous installez Cassandra, spécifiez les adresses IP des nœuds Cassandra (et non les noms DNS) et incluez le modificateur ":dc,ra" pour spécifier le centre de données et le rack du nœud Cassandra.

Par exemple, "192.168.124.201:1,1 = centre de données 1 et zone de rack/disponibilité 1, et "192.168.124.204:2,1 = centre de données 2 et zone de rack/disponibilité 1".

CASS_USERNAME
CASS_PASSWORD

Nom d'utilisateur et mot de passe Cassandra.

Si l'authentification Cassandra est désactivée, vous devez tout de même transmettre ces valeurs. Toutefois, les valeurs sont ignorées.

BAAS_CASS_LOCALDC

Les noms de région doivent respecter le format dc-#, où # correspond à un nombre entier.

Par exemple, dc-1, dc-2, etc. Si vous vous connectez à un cluster Cassandra installé avec Edge, vous pouvez demander cette valeur à l'administrateur système Edge. Dans une installation de centre de données unique Edge, la valeur par défaut est dc-1.

Si vous avez installé Cassandra dans le cadre de l'installation de l'API BaaS, vous avez ajouté le modificateur ":dc,ra" aux adresses IP Cassandra lors de l'installation de Cassandra. La première valeur "dc" correspond au numéro du centre de données. Le nom du centre de données est la chaîne "dc-" suivie du numéro du centre de données.

BAAS_CASS_REPLICATION

Le format est "dataCenterName:#CassandraNodes". Par exemple, pour le contrôleur dc-1 comportant trois nœuds Cassandra, il s'agit de dc-1:3.

BAAS_USERGRID_URL

Dans un environnement de production, il s'agit de l'URL et du port de l'équilibreur de charge qui se trouve devant les nœuds de pile BaaS de l'API, sous la forme:

http://myStackLoadBalancer:8443

Dans un environnement de test ou de développement, dans lequel vous n'avez qu'un seul nœud de pile BaaS d'API, il peut s'agir de l'URL et du numéro de port d'un nœud de pile BaaS d'API, sous la forme suivante:

http://stackIPorDNS:8080

Le numéro de port du serveur de pile BaaS de l'API est 8080.

BAAS_PORTAL_URL

L'URL et le numéro de port de l'équilibreur de charge, le cas échéant, se présentent sous la forme suivante:

http://myPortalLoadBalancer:8443

En l'absence d'équilibreur de charge, l'URL et le numéro de port du nœud de portail sont indiqués au format suivant:

http://portalIPorDNS:9000

BAAS_PORTAL_LISTEN_PORT

Le numéro de port du serveur du portail BaaS de l'API est 9000. Si ce port n'est pas disponible, spécifiez-en un autre.

Si vous définissez BAAS_PORTAL_URL sur l'URL du nœud de portail, les numéros de port doivent être identiques pour les deux propriétés.

Facultatif : Installer Cassandra : machines 8, 9 et 10

Bien que vous puissiez connecter l'API BaaS au même cluster Cassandra que celui utilisé par Edge, Apigee vous recommande d'utiliser des clusters distincts.

Le cluster Cassandra peut utiliser l'authentification, ou celle-ci peut être désactivée. Pour en savoir plus, consultez la section Activer l'authentification Cassandra.

  1. Installez l'utilitaire Edge apigee-setup sur le nœud à l'aide de la procédure Internet ou non Internet. Pour plus d'informations, reportez-vous à la section Installer l'utilitaire de configuration d'Edge apigee-setup.
  2. Dans l'invite de commande, exécutez le script de configuration:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    L'option "-p c" indique comment installer Cassandra.
    Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".

La configuration aboutit à celle du datastore sur le nœud.

Notez que JMX est activé par défaut pour Cassandra. L'accès à distance JMX à Cassandra ne nécessite aucun mot de passe. Vous pouvez configurer Cassandra de sorte qu'il utilise l'authentification pour JMX. Pour en savoir plus, consultez la section Comment surveiller.

Configurer une tâche Cron Cassandra

Configurez une tâche Cron qui utilise nodetool pour vider les verrous de sorte qu'ils s'exécutent toutes les heures sur chaque nœud Cassandra.

Si vous avez plusieurs nœuds Cassandra, décalez la tâche Cron sur chaque serveur de cinq minutes afin que tous les nœuds ne se vident pas en même temps.

La tâche Cron doit exécuter la commande suivante:

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

IP_address est l'adresse IP du nœud Cassandra.

Installer ElasticSearch: machines 1, 2 et 3

Pour installer ElasticSearch:

  1. Installez l'utilitaire de configuration Edge Apigee sur le nœud à l'aide de la procédure Internet ou non Internet. Reportez-vous à Installer l'utilitaire de configuration d'Edge apigee-setup pour en savoir plus.
  2. Dans l'invite de commande, exécutez le script de configuration:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    L'option "-p e" indique l'installation d'ElasticSearch.
    Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".
  3. (Facultatif) Si vous installez ElasticSearch sur un nœud autonome (ce qui signifie qu'il n'est pas installé avec la pile d'API BaaS), ajustez l'option de mémoire par défaut pour augmenter la mémoire allouée à ElasticSearch de 4 Go à 6 Go :
    1. Ouvrez /opt/apigee/customer/application/elasticsearch.properties dans un éditeur. Si ce fichier n'existe pas, créez-le.
    2. Définissez la propriété setenv_elasticsearch_max_mem_size sur 6g (la valeur par défaut est 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Enregistrez le fichier.
    4. Exécutez la commande suivante:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

La configuration aboutit sur le nœud.

Installer la pile BaaS de l'API: machines 4, 5 et 6

Pour installer la pile BaaS de l'API:

  1. Installez l'utilitaire de configuration Edge Apigee sur le nœud à l'aide de la procédure Internet ou non Internet. Reportez-vous à Installer l'utilitaire de configuration d'Edge apigee-setup pour en savoir plus.
  2. Dans l'invite de commande, exécutez le script de configuration:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    L'option "-p b" indique l'installation de la pile BaaS de l'API.
    Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".

Une fois que le programme d'installation a récupéré les bons identifiants d'administrateur, il installe Tomcat, crée des espaces de clés BaaS de l'API et configure la pile d'API BaaS sur le serveur. SMTP est également configuré pour autoriser l'UI à envoyer des e-mails de confirmation de mot de passe.

Installer le portail BaaS de l'API: Machine 7

Pour installer le portail BaaS de l'API:

  1. Installez l'utilitaire de configuration Edge Apigee sur le nœud à l'aide de la procédure Internet ou non Internet. Reportez-vous à Installer l'utilitaire de configuration d'Edge apigee-setup pour en savoir plus.
  2. Dans l'invite de commande, exécutez le script de configuration:
    > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile

    L'option "-p p" indique l'installation du portail BaaS de l'API.
    Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".

Le programme d'installation démarre le serveur Web Nginx, puis termine la configuration du portail BaaS de l'API.

Notez l'URL du portail BaaS de l'API. Il s'agit de l'URL que vous saisissez dans un navigateur pour accéder à l'interface utilisateur du portail BaaS de l'API.

Configurer des nœuds BaaS d'API pour un équilibreur de charge de pile ou de portail

Si vous incluez un équilibreur de charge devant les nœuds de pile ou de portail, vous devez configurer les nœuds avec l'URL correcte de l'équilibreur de charge. Par exemple, les nœuds de pile ont besoin de cette information dans les cas suivants:

  • Inclure une URL dans les réponses des requêtes API BaaS
  • Ajouter des liens dans les modèles d'e-mail lors de la réinitialisation d'un mot de passe ou de l'envoi d'autres notifications
  • Redirection des utilisateurs vers des pages de portail spécifiques

Si vous utilisez un équilibreur de charge devant les nœuds de pile, définissez les propriétés suivantes dans /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_swagger.basepath=http://localhost:8080
usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate
usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate
usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw
usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm
usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate
usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm
usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw

Remplacez http://localhost:8080 par l'URL de l'équilibreur de charge. Si l'équilibreur de charge est configuré pour utiliser TLS, utilisez le protocole HTTPS. Vous ne devez inclure le port que si vous utilisez un port non standard, c'est-à-dire autre que le port 80 pour HTTP et le port 443 pour HTTPS.

Vous devez également définir la propriété suivante dans /opt/apigee/customer/application/portal.properties si vous utilisez un équilibreur de charge devant les nœuds de pile:

baas.portal.config.overrideUrl=http://localhost:8080

Remplacez http://localhost:8080 par l'URL de l'équilibreur de charge pour la pile.

Si vous utilisez un équilibreur de charge devant le nœud de portail, définissez les propriétés suivantes dans usergrid.properties:

usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000

Remplacez http://localhost:9000 par l'URL de l'équilibreur de charge. Si l'équilibreur de charge est configuré pour utiliser TLS, utilisez le protocole HTTPS. Vous ne devez inclure le port que si vous utilisez un port non standard, c'est-à-dire un port autre que le port 80 pour HTTP et le port 443 pour HTTPS.

Après avoir modifié usergrid.properties et portal.properties:

  1. Configurez le nœud de pile:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Déployez les modifications dans Tomcat:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. Redémarrez la pile BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. Si vous avez modifié portal.properties, configurez le nœud du portail:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. Déployez les modifications:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. Redémarrez le portail BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart

Intégrer une nouvelle organisation

L'intégration est le processus de création d'une organisation et d'un administrateur de l'organisation. Après avoir créé l'organisation et l'administrateur de l'organisation, vous pouvez vous connecter à l'interface utilisateur du portail BaaS de l'API et envoyer des requêtes à l'API REST BaaS.

Lorsque vous créez une organisation, l'adresse e-mail de l'administrateur de l'organisation:

  • Elle doit être différente de l'adresse e-mail de l'administrateur système.
  • Il doit être unique parmi toutes les autres organisations. Autrement dit, vous ne pouvez pas créer deux organisations avec la même adresse e-mail pour l'administrateur de l'organisation. Toutefois, après avoir créé l'organisation, vous pouvez ajouter des administrateurs supplémentaires qui peuvent être dupliqués sur plusieurs organisations.

Pour effectuer l'intégration, utilisez le script Python create_org_and_user.py. Si vous appelez ce script sans argument de ligne de commande, vous êtes invité à saisir toutes les informations:

> python create_org_and_user.py

Vous pouvez également transmettre tout ou partie des options en tant qu'argument de ligne de commande. Vous êtes invité à saisir toutes les informations que vous omettez dans la ligne de commande:

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

Pour créer une organisation:

  1. Remplacez le répertoire par /opt/apigee/baas-usergrid/bin.
  2. Appelez le script Python create_org_and_user.py.
    Vous êtes invité à saisir le nom d'utilisateur et le mot de passe de l'administrateur système BaaS afin que seul un administrateur système puisse l'exécuter.
  3. Connectez-vous au portail BaaS de l'API dans un navigateur Web à l'aide de l'URL que vous avez notée à la fin de l'installation de l'URL du portail BaaS de l'API. Pour accéder au portail, saisissez l'URL du portail BaaS de l'API au format suivant:
    http://{portalExternalIP}:9000/

    Remarque: L'adresse IP correspond à l'adresse IP externe ou au nom d'hôte de la machine du portail. Assurez-vous que le port est ouvert.
  4. Lorsque l'écran de connexion au portail s'affiche, vous pouvez :
    • Connectez-vous à l'aide du nom d'utilisateur et du mot de passe de l'administrateur de l'organisation.
    • Connectez-vous à l'aide du nom d'utilisateur et du mot de passe de l'administrateur système.

Accéder à l'API REST BaaS

Pour accéder à l'API REST BaaS, utilisez une URL au format suivant:

https://{loadBalancerIP}:8080/{your-org}/{your-app}

Dans un environnement de développement, vous pouvez installer tous les composants BaaS d'API sur un seul nœud, ce qui signifie que vous disposez d'une seule pile d'API BaaS. Vous pouvez également disposer d'un petit environnement avec un seul nœud de pile BaaS d'API et aucun équilibreur de charge. Dans ces types d'environnements, vous pouvez effectuer des appels d'API directement vers le nœud de pile BaaS de l'API:

curl -v "http://portalExternalIP:8080/status"

Pour plus d'informations sur la prise en main du portail BaaS d'API, consultez la documentation Apigee à l'adresse suivante : http://apigee.com/docs/content/build-apps-home.