J'ai un fichier wp-cli.yml
qui définit un alias pour un hôte distant:
@Origin:
ssh: myserver.example.com
path: /path/to/htdocs
Cela me permettrait normalement d'utiliser wp @Origin command
pour exécuter des commandes distantes sur l'autre hôte. Cependant, dans un cas, l'hôte distant n'est visible que via un proxy SSH. Mon système a donc une entrée de configuration SSH dans ~/.ssh/config
:
Host myserver.example.com
ProxyCommand ssh -q -W %h:22 proxyserver.example.com
ForwardAgent yes
Cela lui indique de se connecter d'abord au serveur proxy, puis de se connecter au serveur de destination. Je peux me connecter à cette boîte en une seule étape en tapant simplement:
$ ssh myserver.example.com
Cependant, lorsque je tente la même chose avec WP-CLI, cela ne fonctionne pas:
$ wp @Origin db export --add-drop-table -
Error: Cannot connect over SSH using provided configuration.
Je conclus que WP-CLI ne regarde pas ma configuration SSH ou ne comprend pas la directive ProxyCommand
.
Puis-je ajouter quelque chose à la commande wp-cli.yml
config ou à la commande wp
pour lui faire utiliser un proxy de la même façon que SSH?
J'ai créé la configuration simillar à la vôtre et le proxy fonctionne pour moi. Ma configuration ressemble à:
Host production
HostName xxx.xxx.xxx.xxx
ProxyCommand ssh -q -W %h:22 vagrant
ForwardAgent yes
Host vagrant
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /path/to/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
ForwardAgent yes
LogLevel FATAL
Je traite ma machine locale vagabonde comme un proxy et je souhaite exécuter la commande sur le serveur de production.
Mon fichier wp-cli.yml ressemble à ceci:
@local:
ssh: vagrant/var/www/test
@prod:
ssh: production/var/www/test
J'exécute la commande wp et, en retour, je récupère les données de mon serveur de production.
wp @prod config get
Je sais que le proxy fonctionne, car si je supprime la section Host vagrant
du fichier ~/.ssh/config
, je ne peux exécuter aucune commande et, en retour, une erreur se produit.
Vous pouvez essayer d’installer wp-cli localy en utilisant composer
composer require wp-cli/wp-cli
echo
commande échappée variable et exécute la commande comme ça:
./vendor/bin/wp @prod config get
Cette variable doit contenir votre commande ssh complète. Cela vous donnera peut-être un indice sur ce qui se passe.