brianshumate.hubot
Ansible Hubot
这是一个 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_packages
和 hubot_ubuntu_os_packages
变量定义了 Hubot 所需的操作系统包;它们应该可以直接使用。
hubot_os_packages
定义了以下操作系统依赖包:
- build-essential
- curl
- git-core
- libssl-dev
- libexpat1-dev
- redis-server
Redis 是实现 redis brains 功能所必需的。
脚本
你可以通过将更多 Hubot 脚本添加到 hubot_node_packages
和 hubot_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 trusty64
或 molecule test --platform centos7
。
依赖项
无
许可证
Apache 2
作者信息
贡献者
请查看 CONTRIBUTORS.MD
ansible-galaxy install brianshumate.hubot