You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免ansible-galaxy init创建角色时自动生成.travis.yml文件

.travis.yml自动生成的原因

不少用户会误以为该文件是创建角色后一段时间自动生成的,实际是执行ansible-galaxy init时就随模板生成的:

  • 早期Ansible版本本地内置的角色骨架没有包含该文件,init命令默认在联网状态下会拉取Ansible Galaxy站点上的最新官方角色模板创建目录,官方后续更新模板加入了.travis.yml作为默认CI配置项,因此后续新创建的角色目录中就会出现该文件,很容易被误认为是后期自动生成。
  • 该文件的作用是为公开上传到Ansible Galaxy的角色提供开箱即用的Travis CI语法校验能力,文件内的webhook配置用于将CI校验结果同步回Galaxy平台,无Travis CI使用需求的话,该文件不会对角色运行产生任何作用,可直接删除。

默认生成的文件内容如下:

---
language: python
python: "2.7"

# Use the new container infrastructure
sudo: false

# Install ansible
addons:
  apt:
    packages:
    - python-pip

install:
  # Install ansible
  - pip install ansible

  # Check ansible version
  - ansible --version

  # Create ansible.cfg with correct roles_path
  - printf '[defaults]\nroles_path=../' >ansible.cfg

script:
  # Basic role syntax check
  - ansible-playbook tests/test.yml -i tests/inventory --syntax-check

notifications:
  webhooks: https://galaxy.ansible.com/api/v1/notifications/
避免该文件自动生成的方法

根据自身使用场景选择以下任意一种方式即可:

  • 单次创建时跳过Travis配置生成:Ansible 2.10及以上版本支持--no-travis参数,执行初始化命令时直接带上该参数即可不生成.travis.yml,命令格式:
    ansible-galaxy init --no-travis my_role
    
  • 使用离线模式初始化:执行命令时加上--offline参数,会直接调用Ansible安装包本地内置的角色骨架创建目录,不会拉取线上包含.travis.yml的最新模板,命令格式:
    ansible-galaxy init --offline my_role
    
  • 自定义全局角色骨架(一劳永逸方案):
    1. 先执行一次ansible-galaxy init temp_role生成默认角色目录,删掉目录里所有不需要的文件(包括.travis.yml、其他无用模板),调整成常用的角色结构,保存到固定路径比如~/.ansible/custom_role_skeleton
    2. 编辑Ansible配置文件(默认路径为~/.ansible.cfg),在[galaxy]配置段添加如下内容:
      [galaxy]
      role_skeleton = ~/.ansible/custom_role_skeleton
      role_skeleton_ignore = ["*.travis.yml", ".git", ".gitignore"]
      
    3. 之后所有通过ansible-galaxy init创建的角色都会使用自定义模板生成,不会再出现不需要的默认文件。

内容的提问来源于stack exchange,提问作者RicHincapie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 10:01:28