cchurch.scm

构建状态 Galaxy

SCM

从版本控制系统(git/hg/svn)检出代码。

要求

如果使用SSH检出,则必须为scm_target_user提供一个部署密钥,或者需要启用SSH代理转发。

安装SCM软件包、以其他用户(即scm_target_user != ansible_user)检出代码,或创建scm_target_user账户都需要sudo或类似的权限提升。

角色变量

有关直接传递给基础模块的参数的更多具体信息,请参考githgsvn Ansible模块的文档。

以下变量通常需要定义以使用此角色:

  • scm_typegit(默认)、hgsvn中的一种。
  • scm_url:存储库的URL(例如http://server/repossh://server/repo),必填。
  • scm_version:要检出的分支、标签、修订版或提交(例如masterHEAD)。
  • scm_force:布尔值,指示是否向SCM模块传递force选项,这将丢弃现有工作目录中的任何修改文件;默认值为false
  • scm_delete_on_update:布尔值,指示在更新之前是否删除scm_target_path,默认值为false
  • scm_username:访问scm_url的用户名,仅在scm_typesvn时受支持。
  • scm_password:访问scm_url的密码,仅在scm_typesvn时受支持。
  • scm_target_path:检出的目标目录(默认为"~/src")。
  • scm_target_user:检出时使用的用户(默认为ansible_user,在这种情况下不需要权限提升)。如果与ansible_user不同,将创建该用户,并在ansible_user无法创建用户时忽略错误。
  • scm_target_user_home:如果创建scm_target_user,则设置的主目录。

以下变量也可用于自定义此角色,但在大多数情况下不太可能需要:

  • scm_accept_hostkey:布尔值,指示是否接受SSH主机密钥,仅在scm_typegit时受支持,角色默认值为true
  • scm_depth:创建浅层克隆,最小值为1;仅在scm_typegit时受支持;角色默认值未指定。
  • scm_executablegithgsvn二进制文件的路径;默认值未指定,系统将搜索二进制路径。
  • scm_export:导出而不是检出/更新;仅在scm_typesvn时受支持;角色默认值未指定,但svn模块的默认值为false
  • scm_key_file:在目标上用于检出的私钥文件路径;默认值未指定;仅在scm_typegit时受支持。
  • scm_purge:更新时删除未跟踪的文件;仅在scm_typehg时受支持;角色默认值未指定,但hg模块的默认值为false
  • scm_recursive:布尔值,指示是否递归克隆存储库,包括子模块;仅在scm_typegit时受支持;角色默认值未指定,但git模块的默认值为true
  • scm_remote:远程的名称;仅在scm_typegit时受支持;角色默认值未指定,但git模块的默认值为"origin"
  • scm_switch:在更新之前调用svn switch;仅在scm_typesvn时受支持;角色默认值未指定,但svn模块的默认值为true
  • scm_track_submodules:布尔值,指示子模块是否跟踪最新提交;仅在scm_typegit时受支持;角色默认值未指定,但git模块的默认值为false
  • scm_update:布尔值,指示是否从原始存储库接收新修订版;角色默认值未指定,但模块的默认值为true
  • scm_verify_commit:布尔值,指示是否验证GPG签名的提交;仅在scm_typegit时受支持;角色默认值未指定,但git模块的默认值为false
  • scm_packages:按ansible_pkg_mgrscm_type映射的软件包。角色将尝试安装所需软件包,如果没有适当的权限提升,则忽略错误。通常情况下,无需更改此变量,除非在使用与yumaptpacmanmacports不同的ansible_pkg_mgr的系统上运行。
  • scm_ssh_agent_forwarding:布尔值,指示是否应用修复以允许SSH代理转发在scm_target_useransible_user不同时工作;角色默认值为false
  • scm_ssh_auth_sock_sudoers_file:当启用scm_ssh_agent_forwarding修复时要添加到sudoers.d的文件路径;角色默认值为"/etc/sudoers.d/ssh_auth_sock"

以下变量可以在play或角色调用中定义(但如果作为清单组或主机变量定义则无效):

  • scm_notify_on_updated:当检出被更改时通知的处理程序名称。默认值为"scm updated";一般建议自定义处理程序收听"scm updated"而不是更改通知名称。

该角色还将设置scm_update_result事实(每个主机),以反映更新任务的结果。

依赖

无。

示例剧本

以下示例剧本检出一个公共git仓库,并在更新后显示一条消息:

- hosts: all
  roles:
    - role: cchurch.scm
      vars:
        scm_type: git
        scm_url: https://github.com/cchurch/ansible-sign.git
        scm_target_path: ~/src/ansible-sign
        scm_version: master
  handlers:
    - name: ansible sign updated
      debug:
        msg: "{{ scm_target_path }}{{ scm_url }} 更新到 {{ scm_update_result.after }}."
      listen: scm updated

许可证

BSD

作者信息

Chris Church (cchurch)

关于项目

Checkout code from SCM (git/hg/svn).

安装
ansible-galaxy install cchurch.scm
许可证
other
下载
2.1k
拥有者
Python/Django/Ansible, will code for sweet tea and beer.