我开发了一个用于创建Ansible Playbook的Gem

非常感谢参与的人们和第二次表示自己的人们。
参加者的增加超出了预期,让我感到惊讶。
(最初我以为不会有很多人,所以考虑逐个模块进行翻译,以此来争取时间…)

第三次可能会很严苛,但如果有余力,我想要努力一下:)

通过创建一个简单的Rubygem来介绍我刚刚实现的用于快速配置Ansible的工具。

下载/源代码

RubyGems页面上的ansible_tools。

Github页面
ansible_tools – Github

可以做的事情 zuò de

    • Ansibleのディレクトリ構成を3パターンで生成することが出来ます。

 

    roles/xxx/vars/main.yml内の変数を確認することが出来ます。

我遇到了困难的情况

    • ディレクトリ構成を作るのがめんどくさい。以前、シェルスクリプトを作ったけど、不便だった。

 

    vas/main.yml内の変数の確認がいちいちめんどくさい。

安装

行动环境 zuò

我正在这个环境下进行操作验证。

MacOS X 10.7.5 + ruby 2.0.0p353
CentOS 6.4 + ruby 2.0.0p353

安装方式

$ gem install ansible_tools

使用方法

$ ansible-tools
Commands:
  ansible-tools help [COMMAND]  # Describe available commands or one specific command
  ansible-tools init [-s][-r]   # create ansible files by BestPractice
  ansible-tools show            # show ansible valiables in vars/main.yml
  ansible-tools version         # show version

创建最佳实践的结构。

按照ANSIBLEWORKS的最佳实践创建目录结构和文件。
顺便说一下,文件内没有任何内容。不过以后会加入一些简单内容。

$ ansbile-tools init
        create  roles/common/tasks
        create  roles/common/handlers
        create  roles/common/templates
        create  roles/common/vars
        create  roles/common/file
        create  group_var
        create  host_var
        create  site.yml
        create  roles/common/tasks/main.yml
        create  roles/common/handlers/main.yml
        create  roles/common/templates/foo.conf.j2
        create  roles/common/vars/main.yml
        create  roles/common/file/bar.txt
        create  production
        create  stage
        create  group_var/group1
        create  group_var/group2
        create  host_var/hostname1
        create  host_var/hostname2

ヘルプはこんな感じです。
$ ansible-tools help init
Usage:
  ansible-tools init [-s][-r]

Options:
  -s, [--simple]     # simple-mode, create only setup.yml, roles/common
  -r, [--role=ROLE]  # create roles/ROLE

create ansible files by BestPractice

构建一个简单的结构。

当不需要像Best Practice那样大型的配置时,我们会创建最小限度的配置。
我主要使用这个配置。
在init中添加-s或–simple。

$ ansbile-tools init -s
        create  roles/common/tasks
        create  roles/common/handlers
        create  roles/common/templates
        create  roles/common/vars
        create  roles/common/file
        create  site.yml
        create  roles/common/tasks/main.yml
        create  roles/common/handlers/main.yml
        create  roles/common/templates/foo.conf.j2
        create  roles/common/vars/main.yml
        create  roles/common/file/bar.txt

我个人会准备以下的hosts,并执行”$ansible-playbook site.yml -i hosts”命令。

# hosts
[server]
192.168.0.104

增加角色

当您只想添加角色时,需要添加目录和文件。
在init中添加-r name或–role=name。

$ ansbile-tools init -r <roles name>

e.g. 
$ ansible-tools init -r gitlab
        create  roles/gitlab/tasks
        create  roles/gitlab/handlers
        create  roles/gitlab/templates
        create  roles/gitlab/vars
        create  roles/gitlab/file
        create  site.yml
        create  roles/gitlab/tasks/main.yml
        create  roles/gitlab/handlers/main.yml
        create  roles/gitlab/templates/foo.conf.j2
        create  roles/gitlab/vars/main.yml
        create  roles/gitlab/file/bar.txt

在写作的时候我意识到了,同时我也在制作 site.yml,所以之后不需要再创建了。目前如果 site.yml 已存在,则无需创建,所以没有问题。

展示变量列表

显示 roles/name/vars/main.yml 文件中的内容清单。

$ ansbile-tools show
+----------------------------------------------------------------------------+
|             File             |          Key          |        Value        |
+----------------------------------------------------------------------------+
| roles/gitlab/vars/main.yml   | mysql_gitlab_password | password            |
| roles/gitlab/vars/main.yml   | mysql_gitlab_database | gitlabhq_production |
| roles/mariadb/vars/main.yml  | mysql_root_password   | password            |
| roles/Packages/vars/main.yml | www_port              |                  80 |
| roles/ruby/vars/main.yml     | ruby_ver              | 2.0.0-p247          |
+----------------------------------------------------------------------------+

待办事项

    • テストやドキュメントを書く。

 

    何か必要そうな機能があれば作る。ansible-docを使ってtaskから要領書(word)を作るとか。書類命な勤務先ではなかなか浸透しなさそうなので。。。
bannerAds