brianshumate.hubot

Ansible Hubot

构建状态 Ansible Galaxy 解决问题的平均时间 仍然开放问题的百分比

这是一个 Ansible 角色,用于 Hubot,一个能带给你的团队快乐和提升工作效率的聊天机器人!

默认情况下,此 Hubot 角色使用 Slack 适配器,但你可以通过编辑 defaults/main.yml,将 hubot_adapter 的值更改为其他适配器,比如 HipChat,并在 defaults/main.yml 文件中添加适当的环境变量。

需求

此角色要求使用 Ubuntu 或 CentOS 基于的 Linux 主机,已知在以下软件版本上正常工作:

  • Ansible: 2.2.0.0
  • Hubot: GitHub 主分支
  • Node.js: 6.9.1
  • CentOS: 6
  • Ubuntu: 14.04, 13.10, 13.04, 12.10, 12.04

与 Ansible Galaxy 一起工作

你可以使用 ansible-galaxy 命令安装此角色,而无需直接从 git 仓库运行。

这样安装:

ansible-galaxy install brianshumate.hubot

你需要确保对 /etc/ansible/roles/ 具有写权限,因为这是默认安装路径,或者通过创建一个包含以下内容的 $HOME/.ansible.cfg 文件来定义自己的 Ansible 角色路径:

[defaults]
roles_path = <path_to_your_preferred_role_location>

<path_to_your_preferred_role_location> 更改为你有写权限的目录。

详细信息请参见 ansible-galaxy 文档。

角色变量

所有角色变量应位于 defaults/main.yml 中。

名称 默认值 描述
hubot_admin vagrant Hubot 管理员的操作系统用户名
hubot_adapter slack 首选的聊天适配器
hubot_node_version 0.10.36 首选的 Node.js 版本
hubot_dir path Hubot 基础目录
hubot_nvm_dir path Node 版本管理器(nvm)安装目录
hubot_node_dir path
hubot_global_node_packages list 全局安装的 Node.js 依赖包
hubot_all_dirs list Hubot 管理员用户所拥有的目录
hubot_env list Hubot 适配器的环境变量
hubot_identity hubot 机器人用户名
hubot_owner "'Stephie Andretti stephie@example.com'" 机器人拥有者
hubot_description "'一个有用的聊天机器人'" 机器人描述
hubot_node_packages list 要安装的 Node.js 依赖包
hubot_external_scripts list 要使用的外部第三方 Hubot 脚本
hubot_external_git_scripts list 从 Git 仓库克隆的外部第三方 Hubot 脚本
hubot_custom_scripts list 要使用的 files/scripts 目录中的脚本
hubot_git_scripts list 从 Git 仓库克隆的脚本
epel_repo_gpg_key path EPEL GPG 密钥 URL
epel_repo_url URL EPEL 存储库 URL

Node 包

hubot_node_packages 定义了以下 Node.js 依赖包:

  • cheerio
  • chrono-node
  • clark
  • htmlparser
  • hubot-ascii-art
  • hubot-coin
  • hubot-calculator
  • hubot-hipchat-emoticons
  • hubot-{{ hubot_adapter }}
  • hubot-redis-brain
  • hubot-scripts
  • hubot-xkcd
  • hubot-youtube
  • lodash
  • moment
  • nodepie
  • soupselect
  • textspark

请注意,更新的 Hubot 脚本现在也可以作为 Node 模块。

hubot_centos_os_packageshubot_ubuntu_os_packages 变量定义了 Hubot 所需的操作系统包;它们应该可以直接使用。

hubot_os_packages 定义了以下操作系统依赖包:

  • build-essential
  • curl
  • git-core
  • libssl-dev
  • libexpat1-dev
  • redis-server

Redis 是实现 redis brains 功能所必需的。

脚本

你可以通过将更多 Hubot 脚本添加到 hubot_node_packageshubot_external_scripts 变量中来启用更多脚本。

配置

首先,根据需要编辑 defaults/main.yml 中定义的变量。

然后,将必要的 templates/hubot_?.env.j2 复制到 templates/_hubot_?.env.j2,其中 ? 为你的 hubot_adapter 值,必要时更新所需的环境变量。

hosts.example 复制到 hosts 并编辑以更新你的 Hubot 主机的值。确保更改以下值:

  • 0.0.0.0
  • ubuntu
  • ~/.ssh/hubot_id

如果你打算使用 site.yml 剧本,请更新它,并将 hubot_identity 设置为你的机器人短用户名。

示例剧本

配置完成后,可以使用包含的 site.yml 剧本进行基本 Hubot 安装和激活:

ansible-playbook -i hosts site.yml

你还可以使用 --extra-vars 选项将变量传递给 ansible-playbook 命令:

ansible-playbook -i hosts site.yml --extra-vars "hubot_admin=penelope hubot_adapter=hipchat hubot_identity=penelope hubot_owner='Penelope <[email protected]>' hubot_description='一个迷人的美人鱼机器人'"

测试角色

你可以使用 Molecule 测试该角色。

Molecule 配置位于角色的根目录中的 molecule.yml 文件中。此角色已在 Ubuntu Trusty 64 和 CentOS 7 上测试,但你可以根据需要添加其他平台。

要设置测试环境,请运行以下命令:

mkvirtualenv -p $(which python2) molecule
pip install molecule ansible

要测试角色,运行 molecule test --platform trusty64molecule test --platform centos7

依赖项

许可证

Apache 2

作者信息

Brian Shumate

贡献者

请查看 CONTRIBUTORS.MD

关于项目

Role for Hubot, a delightful chat bot

安装
ansible-galaxy install brianshumate.hubot
许可证
other
下载
923
拥有者
Art ⁂ Data ⁂ Boards ⁂ Water