Вы пытаетесь отредактировать строку в середине файла, которая невозможна.
Что вы можете сделать, это сделать копию удаленного файла на локальном компьютере с нужными значениями, которые вы хотите изменить, и затем отправить его обратно на удаленный сервер.
from fabric import Connection as connection, task
@task
def executeTask(ctx):
with connection(host=dev_server, user=myuser) as c:
c.put('PATH_TO_YOUR_YML_FILE_LOCALLY', 'PATH_TO_YOUR_REMOTE_YML_FILE')
Не забудьте:
- Замените
dev_server
и myuser
IP-адресом удаленного сервера и именем пользователя на нем
- поместите приведенный выше код в файл с именем
fabfile.py
, и вы запустите из командной строки fab executeTask
Код выше fabric 2.4
совместим
EDIT:
Из-за проблем с разрешениями вы можете сделать следующее:
@task
def executeTask(ctx):
with connection(host=dev_server, user=myuser) as c:
c.put("PATH_TO_YOUR_YML_FILE_LOCALLY") # implicit to remote $HOME
c.sudo("mv YOUR_FILE_NAME YOUR_DESIRED_LOCATION") # again implicitly with a CWD of $HOME
c.sudo("chown root:root YOUR_REMOTE_FILE")
Ссылки на сайты:
https://github.com/fabric/fabric/issues/1750#issuecomment-406043571