簡體   English   中英

Fabric運行要求sudo密碼的bash腳本-如何發送此密碼

[英]Fabric runs bash script that ask for sudo password - How to send this password

我想使用結構在遠程計算機上部署一些應用程序。 為此,我使用Fabric從VCS(bitbucket或github)中檢索bash腳本並執行它。 但是,腳本的第一步是將當前用戶添加到sudoers中,因此要求輸入密碼。

可以在fabfile或fab命令中發送此密碼嗎?

部分代碼:

重擊

sudo tee /etc/sudoers.d/$USER <<END
END
file=/usr/share/MyCompagny/mybashscript.sh
sudo touch $file
sudo echo 'blablabla' >> $file
sudo /bin/rm /etc/sudoers.d/$USER
sudo -k

fabfile

def deploy():
    env.hosts = ['192.168.100.160']
    source_folder = '/home/username/src'
    branch = 'dev'
    puts('Pulling changes from branch <{}>'.format(branch))
    projects = ['data', 'report']
    for project in projects:
        current_path = os.path.join(source_folder, 'package.{}'.format(project))
        with cd(current_path):
            puts('Current path: {}'.format(current_path))
            # Discard all pending changes
            run('git checkout -- .')
            # Checkout the right branch
            run('git checkout {}'.format(branch))
            # Pull changes
            run('git pull origin_ssh {}'.format(branch))
    puts('Install with bash script')
    with cd(source_folder):
        run('./mybashscript.sh')

使用結構的“ sudo ”功能代替“ run ”功能。 腳本不會提示輸入密碼,因為它將以sudo特權運行。

def deploy():
   env.hosts = ['192.168.100.160']
   source_folder = '/home/username/src'
   branch = 'dev'
   puts('Pulling changes from branch <{}>'.format(branch))
   projects = ['data', 'report']
   for project in projects:
      current_path = os.path.join(source_folder, 'package.{}'.format(project))
      with cd(current_path):
         puts('Current path: {}'.format(current_path))
         # Discard all pending changes
         sudo('git checkout -- .')
         # Checkout the right branch
         sudo('git checkout {}'.format(branch))
         # Pull changes
         sudo('git pull origin_ssh {}'.format(branch))
      puts('Install with bash script')
      with cd(source_folder):
         sudo('./mybashscript.sh')

希望能幫助到你 !!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM