0

我有一个基本的部署过程,我想自动化它。我需要帮助创建一个我可以调用的 sh 文件,该文件将处理所有步骤。

关于我的设置的注意事项:

  • root 没有 FTP 访问权限。
  • 另一个用户“senthil”只能通过 FTP 访问自己的文件夹 /home/senthil

部署过程

在我将代码签入 bitbucket.org 后...

  1. 打开腻子,登录为senthil(输入用户名+密码)。
  2. 导航到 repo 克隆文件夹/home/senthil/repos/mysite
  3. hg pull
  4. 要求时输入密码。
  5. hg update
  6. 注销 senthil(腻子已关闭!)。
  7. 打开putty,以root身份登录(输入用户名+密码)。
  8. 导航到 repo 克隆文件夹/home/senthil/repos/mysite
  9. 类型hg archive /path/to/website/root
  10. 运行chmod命令,以便 apache 用户具有适当的访问权限

当我试图制作一个可以解决这个问题的 sh 文件时,我做不到。我可以只做 2 或 3 个步骤,然后我会遇到这样的问题:

  1. 如何通过 sh 提示输入密码 for hg pull
  2. 如何在腻子中注销并以其他用户身份登录

如何在一个可以运行的 sh 文件中自动化整个过程?

4

2 回答 2

0

您应该使用 ssh 连接到没有密码的机器。

谷歌搜索“初学者的 ssh”或查看此链接以学习如何操作。 http://inside.mines.edu/~gmurray/HowTo/sshNotes.html

要回答您的第二个问题,要注销用户,只需在命令提示符下键入命令 exit 即可。

于 2012-12-23T09:43:04.080 回答
0
  1. 您可以使用单个会话(我看不到任何正在进行的 FTP,只有本地 FS)
  2. 您必须使用 Plink 在主机上登录,它可以执行非交互式登录并在登录后在服务器端运行命令(命令将是带有所有部署任务的 tour shell-script):plink HOST COMMAND
  3. 为了避免 pull 时出现密码提示(但 fetch 会更好,一个命令而不是 pull+update),您可以阅读.hgrc 中的 [auth] 部分(全局或特定于 repo)
于 2012-12-23T13:25:51.480 回答