мне нужно SSH на удаленный сервер Ubuntu, чтобы сделать некоторые рутинную работу, в следующих шагах:Python Fabric выполнить удаленную базу данных задач
- SSH как ПользовательА
- SUDO су - USERB
- запустить daliy_python .py скрипт с использованием psycopg2 прочитать некоторую информацию из базы данных (через локальное соединение (не TCP/IP))
- показания ПКПП моей локальной машине
Вопрос: Как это сделать автоматически? Я пытаюсь использовать ткань, но я столкнулся с проблемой с psycopg2, после того, как я запускаю сценарий ткани ниже, я получил сообщение об ошибке от моего daliy_python.py
psycopg2.OperationalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/xxx/.s.xxxx"?
Мой fabfile.py код, как показано ниже:
from fabric.api import *
import os
import socket
import pwd
# Target machine setting
srv = 'server.hostname.com'
env.hosts = [srv]
env.user = 'userA'
env.key_filename = '/location/to/my/key'
env.timeout = 2
# Force fabric abort at timeout
env.skip_bad_hosts = False
def run_remote():
user = 'userB'
with settings(warn_only=True):
run('whoami')
with cd('/home/%s/script/script_folder' % user):
sudo('whoami')
sudo('pwd', user=user)
sudo('ls', user=user)
sudo('python daliy_python.py', user=user)
Любые предложения? Моя база данных может быть доступна только через userB, но только userA может ssh на сервере. Это может быть ограничение. На локальной и удаленной машине работает Ubuntu 14.04.
Это ошибка соединения с базой данных, которая на самом деле отдельное беспокойство от запуска удаленных процессов с тканью. См. Некоторые из этих возможных решений: https://stackoverflow.com/questions/5500332/cant-connect-the-postgresql-with-psycopg2 https://stackoverflow.com/questions/26034092/connection-error-while- connection-to-postgresql-as-postgres-user – chishaku
@chishaku Спасибо, я не знаю, откуда эта ошибка, если я нахожусь на сервере и выполняю работу, он отлично работает. Это произошло, когда я использую скрипт для работы с материалами, что заставляет меня задаться вопросом, не сделал ли я что-то не так с настройкой ткани/или я должен использовать другой инструмент? – cityzz