Suite

Comment configurer un paramètre d'espace de travail dans Geoserver à l'aide de Curl


J'ai créé avec succès un espace de travail + un magasin + une couche raster dans Geoserver à l'aide de Curl en PHP.

Si je reviens à l'interface utilisateur de Geoserver et que j'entre dans l'espace de travail que je viens de créer, les paramètres : « Activer » et l'un des « Services » ne sont pas cochés (vides). Je voudrais les activer en utilisant Curl.

Si vous visitez : http://docs.geoserver.org/latest/en/user/rest/examples/curl.html#

Apparemment, le seul moyen -le plus simple?- de créer un espace de travail dans le géoserveur consiste à utiliser les balises XML :

votre nom

Si j'essaie d'ajouter de nouvelles balises à l'expression XML ci-dessus, comme par exemple

Vrai

cela vous donne une erreur.

[500] Aucun champ de ce type org.geoserver.catalog.impl.WorkspaceInfoImpl.enabled

Alors, est-ce que quelqu'un a réussi à configurer ces options de l'espace de travail en utilisant Curl ? Par exemple, activer les services WMS pour cet espace de travail ?

Au fait, ce post n'aide pas trop :

Sélection du service (WMS / WFS) via l'API REST GeoServer ?


Cela ressemble à une fonctionnalité manquante (cela signifie probablement qu'elle a été ajoutée après le magasin REST) ​​- alors n'hésitez pas à ouvrir un ticket Jira notant le problème, puis à joindre un correctif ou une demande d'extraction avec le correctif.


Restriction des emplacements de ressources

Ce guide explique comment définir une stratégie d'organisation qui inclut la contrainte d'emplacement des ressources.

Vous pouvez limiter l'emplacement physique d'une nouvelle ressource avec la contrainte d'emplacements des ressources du service de stratégie d'organisation. Vous pouvez utiliser la propriété location d'une ressource pour identifier où elle est déployée et gérée par le service. Pour les ressources contenant des données de certains services Google Cloud, cette propriété reflète également l'emplacement où les données sont stockées. Cette contrainte vous permet de définir les emplacements Google Cloud autorisés où les ressources pour les services pris en charge dans votre hiérarchie peuvent être créées.

Après avoir défini les emplacements des ressources, cette limitation s'appliquera uniquement aux ressources nouvellement créées. Les ressources que vous avez créées avant de définir la contrainte d'emplacements de ressources continueront d'exister et de remplir leur fonction.

Une règle qui inclut cette contrainte ne sera pas appliquée lors de la création de sous-ressources pour certains services, tels que Cloud Storage et Dataproc.


Polybar i3 aucun module d'espace de travail n'apparaissant

Je viens de passer de la barre i3 par défaut à l'utilisation de polybar (exécutant Fedora 30, i3-gaps). J'ai installé polybar en suivant ce guide : https://computingforgeeks.com/install-polybar-status-bar-on-fedora/. J'ai d'abord essayé d'exécuter la configuration par défaut pour polybar et cela a fonctionné, sauf qu'il n'y avait rien à gauche où les espaces de travail devraient être. J'ai joué un peu pour essayer de le faire fonctionner, mais personne dans aucun des forums que j'ai rencontrés ne semblait avoir une situation similaire.

J'ai fini par copier la configuration polybar donnée dans cette réponse, car ils semblaient configurer leurs espaces de travail dans la configuration i3 de la même manière que moi: https://computingforgeeks.com/install-polybar-status-bar-on-fedora /, mais le résultat était le même - aucun module d'espace de travail n'apparaissant sur ma polybar.

Mon fichier de configuration polybar est :

EDIT: J'ai fait un peu plus de dépannage et j'ai compris que le problème venait de mon installation de polybar. Si je l'exécute à partir du terminal, il me dit que je n'ai pas de support intégré pour internal/i3. La commande polybar -v me donne :


SIG pratique : apprenez des novices à des sujets avancés tels que QGIS, l'analyse de données spatiales, etc.

Principales caractéristiques
• Ce guide facile à suivre vous permet de gérer et d'analyser facilement des données géographiques à l'aide d'outils open source
• Publiez vos données géographiques en ligne
• Apprendre les bases de la géoinformatique de manière pratique en résolvant des problèmes

Description du livre
Les outils SIG les plus couramment utilisés automatisent les tâches qui étaient historiquement effectuées manuellement : compiler de nouvelles cartes en les superposant ou en coupant physiquement des cartes en morceaux représentant des zones d'étude spécifiques, en modifiant leur projection et en obtenant des résultats significatifs à partir des différentes couches en appliquant fonctions et opérations mathématiques. Ce livre est un guide facile à suivre pour utiliser les outils SIG open source les plus matures pour ces tâches.
Nous allons commencer par configurer l'environnement pour les outils que nous utilisons dans le livre. Ensuite, vous apprendrez à travailler avec QGIS afin de générer des données spatiales utiles. Vous apprendrez les bases des requêtes, de la gestion des données et du géotraitement.
Après cela, vous commencerez à mettre en pratique vos connaissances sur des exemples du monde réel. Nous allons résoudre divers types d'analyses géospatiales avec diverses méthodes. Nous commencerons par des problèmes SIG de base en imitant le travail d'un agent immobilier enthousiaste, et continuerons avec des tâches plus avancées mais typiques en résolvant un problème de décision.
Enfin, vous découvrirez comment publier vos données (et résultats) sur le web. Nous publierons nos données avec QGIS Server et GeoServer, et créerons une carte Web de base avec l'API de la bibliothèque de cartographie Web légère Leaflet.

Ce que vous apprendrez
• Collectez des données SIG pour vos besoins
• Stocker les données dans une base de données PostGIS
• Exploiter les données en utilisant la puissance des requêtes SIG
• Analyser les données avec des outils SIG de base et plus avancés
• Publiez vos données et partagez-les avec d'autres
• Créer une carte Web avec vos données publiées


4 réponses 4

Si vous avez trouvé un moyen de faire fonctionner les choses et que votre seul souci est de recevoir trop d'avertissements, vous pouvez faire les choses à votre façon en supprimant les messages :

Vous redirigeriez le descripteur de fichier (FD) #2, qui est stderr, vers un "trou noir". Vous pouvez également vouloir supprimer les messages envoyés à stdout (FD #1), bien que cela soit moins courant dans des cas comme le vôtre. Vous devez vérifier l'encombrement que vous obtenez. Donc, vous auriez (en redirigeant uniquement stderr):

ou (redirection stderr et stdout ce sont des formes alternatives de la même commande)

La syntaxe 2>&1 signifie rediriger le FD #2 vers l'endroit où le FD #1 va. Le FD par défaut est #1, donc > est équivalent à 1> .

Pour les rares cas, vous avez besoin de plus d'informations que ci-dessus, ou par curiosité :

J'ai écrit sur les différentes manières dont Google Chrome est affecté par les paramètres de proxy. Plutôt que de définir le proxy dans Chrome, utilisez plutôt les paramètres du système d'exploitation.

Si vous utilisez GNOME, essayez d'utiliser gsettings

Pouvez-vous télécharger un fichier sur Internet en utilisant wget ou curl ? La commande suivante crée-t-elle un fichier index.html à partir de la page d'accueil de Google ?

Si votre problème est de vous connecter au proxy SOCKS et qu'il affecte d'autres applications, essayez d'utiliser des chaînes de proxy ou pacproxy.

Très probablement, votre tentative de modification de google-chrome.desktop n'a pas fonctionné car ce fichier contient plusieurs entrées Exec et celle que vous avez modifiée n'est pas celle qui est réellement utilisée.

En utilisant le package Chrome pour Debian du référentiel de Google, google-chrome.desktop affiche trois entrées Exec dans trois sections distinctes (groupes, dans la nomenclature de freedesktop.org) :

Celui avec l'option --incognito - probablement celui que vous avez modifié - n'est exécuté que lorsque vous sélectionnez "Nouvelle fenêtre de navigation privée" dans un menu contextuel (par exemple, après un clic droit sur l'icône de Chrome dans les activités GNOME).

À moins que votre objectif ne soit de modifier la configuration pour chaque utilisateur de votre système, je vous suggère de créer votre propre version personnalisée de google-chrome.desktop :

Et puis éditez l'entrée Exec, au moins dans le groupe [Desktop Entry] (vous pouvez conserver les autres entrées Exec alignées pour vous assurer que Chrome se comportera de la même manière, quelle que soit l'entrée de menu que vous avez utilisée pour le démarrer) :

Comme indiqué par Dominik Matis dans un commentaire, vous souhaiterez peut-être ajouter l'option --host-resolver-rules pour empêcher le préchargeur DNS de Chrome de contourner vos paramètres de proxy, comme expliqué dans la documentation Chromium.

Ajustez proxyURL et proxyPORT si nécessaire, n'oubliez pas de définir proxyURL pour les options --proxy-server et --host-resolver-rules.

Si vous souhaitez que l'action d'ouverture par défaut exécute Chrome sans définir de proxy, vous pouvez laisser l'entrée Exec de l'entrée principale [Desktop Entry] intacte et ajouter une action à la place. Cela vous oblige à

  1. ajouter un nom pour une nouvelle action à la touche Actions dans le groupe [Desktop Entry]
  2. ajouter un nouveau groupe d'actions.

"Nouvelle fenêtre proxy" apparaîtra alors comme une option lorsque vous faites un clic droit sur l'icône de Chrome (cela peut nécessiter une déconnexion/connexion). Notez que toutes les instances de Chrome exécutées simultanément partageront les mêmes paramètres de proxy que la première que vous avez ouverte, sauf si vous les démarrez avec l'option --user-data-dir.


Licence

Choisissez la configuration la mieux adaptée à vos besoins.

A) Configuration pour un seul projet

(Suivez ces étapes si vous souhaitez un environnement Docker distinct pour chaque projet)

A.1) Vous avez déjà un projet PHP :

1 - Clonez laradock sur le répertoire racine de votre projet :

Remarque : si vous n'utilisez pas encore Git pour votre projet, vous pouvez utiliser git clone au lieu de git submodule .

Pour garder une trace de vos modifications Laradock, entre vos projets et également garder Laradock à jour, consultez ces documents

2 - Assurez-vous que votre structure de dossiers doit ressembler à ceci :

(Il est important de renommer les dossiers laradock en nom unique dans chaque projet, si vous souhaitez exécuter laradock par projet).

A.2) Vous n'avez pas encore de projet PHP :

1 - Clonez ce dépôt n'importe où sur votre machine :

Votre structure de dossiers devrait ressembler à ceci :

2 - Modifiez la configuration de vos sites de serveur Web.

Nous devons maintenant effectuer l'étape 1 de la section Utilisation pour que cela se produise.

En haut, remplacez la variable APP_CODE_PATH_HOST par le chemin de votre projet.

Assurez-vous de remplacer project-z par le nom de votre dossier de projet.

B) Configuration pour plusieurs projets :

(Suivez ces étapes si vous voulez un seul environnement Docker pour tous vos projets)

1 - Clonez ce référentiel n'importe où sur votre machine (similaire aux étapes A.2. ci-dessus) :

Votre structure de dossiers devrait ressembler à ceci :

Assurez-vous que la variable APP_CODE_PATH_HOST pointe vers le répertoire parent.

2 - Accédez à votre serveur Web et créez des fichiers de configuration pour pointer vers différents répertoires de projet lorsque vous visitez différents domaines :

Pour Nginx allez sur nginx/sites , pour Apache2 apache2/sites .

Laradock inclut par défaut des exemples de fichiers que vous pouvez copier app.conf.example , laravel.conf.example et symfony.conf.example .

3 - changer les noms par défaut *.conf :

Vous pouvez renommer les fichiers de configuration, les dossiers de projet et les domaines comme vous le souhaitez, assurez-vous simplement que la racine dans les fichiers de configuration pointe vers le nom de dossier de projet correct.

4 - Ajouter les domaines au hôtes des dossiers.

Si vous utilisez Chrome 63 ou supérieur pour le développement, n'utilisez pas .dev . Pourquoi?. Utilisez plutôt .localhost , .invalid , .test ou .example .


Redirection de port vers l'application dans l'espace de noms réseau avec vpn

J'ai pu configurer un espace de noms réseau, établir un tunnel avec openvpn et démarrer une application qui utilise ce tunnel à l'intérieur de l'espace de noms. Jusqu'ici tout va bien, mais cette application est accessible via une interface Web et je n'arrive pas à comprendre comment acheminer les demandes vers l'interface Web à l'intérieur de mon réseau local.

Après cela, je peux vérifier mon adresse IP externe et obtenir des résultats différents à l'intérieur et à l'extérieur de l'espace de noms, comme prévu :

L'application est lancée, j'utilise Deluge pour cet exemple. J'ai essayé plusieurs applications avec une interface Web pour m'assurer que ce n'est pas un problème spécifique au déluge.

Je peux accéder à l'interface Web sur le port 8112 à partir de l'espace de noms et de l'extérieur si je spécifie l'adresse IP de veth vpn1.

Mais je veux rediriger le port 8112 de mon serveur vers l'application dans l'espace de noms. L'objectif est d'ouvrir un navigateur sur un ordinateur à l'intérieur de mon réseau local et d'obtenir l'interface Web avec http://my-server-ip:8112 (my-server-ip étant l'adresse IP statique du serveur qui a instancié l'interface réseau)

EDIT : j'ai supprimé mes tentatives de création de règles iptables. Ce que j'essaie de faire est expliqué ci-dessus et les commandes suivantes devraient générer un HTTP 200 :

J'ai essayé les règles DNAT et SNAT et jeté une MASQUERADE pour faire bonne mesure, mais comme je ne sais pas ce que je fais, mes tentatives sont vaines. Peut-être que quelqu'un peut m'aider à mettre en place cette construction.

EDIT: La sortie tcpdump de tcpdump -nn -q tcp port 8112 . Sans surprise, la première commande renvoie un HTTP 200 et la deuxième commande se termine par un refus de connexion.

EDIT : @schnouki lui-même m'a indiqué un article sur l'administration Debian expliquant un proxy TCP iptables générique. Appliqué au problème posé, leur script ressemblerait à ceci :

Malheureusement, le trafic entre les interfaces veth a été saisi et rien d'autre ne s'est produit. Cependant, @schnouki a également suggéré l'utilisation de socat comme proxy TCP et cela fonctionne parfaitement.

Je n'ai pas encore compris l'étrange remaniement des ports pendant que le trafic traverse les interfaces veth, mais mon problème est maintenant résolu.


La sortie est tronquée dans le travail Jenkins lors du lancement du script PowerShell à distance à l'aide de psexec

J'ai créé un travail dans Jenkins pour lancer un petit script powershell sur une machine distante à l'aide de psexec. Dans mon étape de construction, j'utilise le plugin powershell et je lance la commande ci-dessous :

Dans le fichier test_psexec.ps1, j'ai le code ci-dessous :

Le fichier test_script.ps1 contient le script suivant :

Le travail s'exécute avec succès, mais pour une raison quelconque, la sortie que j'affiche à partir de psexec dans Jenkins ne renvoie qu'une seule ligne. J'ai exécuté un autre script de test sur la machine distante avec un tas de texte, et il semble tronquer la sortie à 256 caractères. La sortie du travail Jenkins ressemble à ce qui est ci-dessous :

Si je me connecte et lance le script sur la machine distante dans PowerShell, j'obtiens la sortie appropriée. De plus, je ne lance pas directement psexec dans Jenkins car il existe une autre logique autour de cette partie du script test_psexec.ps1 qui n'est pas pertinente pour ce problème.

Est-ce que quelqu'un sait si j'atteins une sorte de limite de tampon ou connaît un paramètre que je peux configurer pour éviter ce problème ?


9 réponses 9

Tout d'abord, assurez-vous de cliquer sur "Appliquer à l'échelle du système. " chaque fois que vous modifiez les paramètres de proxy dans gnome-network-properties ( System -> Preferences -> Network Proxy ). Cela définit http_proxy et les variables d'environnement associées. Cela devrait être disponible pour tous les programmes démarrés une fois que le paramètre de proxy est « appliqué à l'ensemble du système ». Pour être vraiment sûr, vous pouvez vous déconnecter et vous reconnecter pour vérifier cela.

Si vous ouvrez un terminal et utilisez la commande set | grep -i proxy, vous verrez les variables d'environnement pertinentes définies. Idéalement, cela devrait suffire.

Cependant, j'ai été confronté à des situations où tout ce qui précède ne fonctionne toujours pas : Synaptic ou apt-get (sur la ligne de commande) ne peuvent pas se connecter à Internet via le proxy même après qu'il soit défini de la manière ci-dessus. Dans de tels cas, une solution consiste à ajouter un fichier dans /etc/apt/apt.conf.d avec une configuration de proxy spécifique pour apt (cela sera utilisé par apt-get, aptitude, synaptic et le centre logiciel Ubuntu).

gksudo gedit /etc/apt/apt.conf.d/40proxy

Mettez-y le contenu suivant - modifiez le contenu en fonction de votre situation.


Script bash : un moyen plus élégant de récupérer la version la plus récente de go ?

Caveat: Cette petite ligne de bash et la question ici sont toutes deux à des fins d'apprentissage, car je me rends compte que je pourrais « juste ouvrir un navigateur ».

Sauf erreur, Google ne propose pas de moyen convivial pour télécharger la dernière version de golang. Les scripts que j'ai vus (comme cet essentiel) nécessitent toujours que vous connaissiez et que vous saisissiez manuellement le numéro de version de go.

Mon but était de voir si je pouvais récupérer automatiquement la dernière version sans la rechercher.

Ma solution fonctionne mais j'aimerais apprendre une manière plus simple et plus propre :

En un mot, il récupère tous les liens de la page de téléchargement de golang, nettoie les URL pour ne conserver que celles de tar.gz, et conserve enfin la première ligne de la sortie qui est le lien exact dont j'aurais besoin. Tout de suite : ce serait pour go.1.8.3.

Encore une fois, c'est à des fins d'apprentissage. Merci pour votre temps.

ÉDITER: J'ai "accepté" la suggestion de GMaster comme réponse car elle a amélioré ma solution sans outils supplémentaires. Je suis cependant reconnaissant aux autres commentateurs de m'avoir aidé à découvrir des outils supplémentaires. Bien que j'attende avec impatience tous les ajouts possibles à l'avenir, j'ai pensé qu'il valait mieux fermer cette question car ma demande a été amplement traitée.


Voir la vidéo: , OpenLayers, PostgeSQL, GeoServer web application: create and deploy (Octobre 2021).