8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ansible GalaxyでGithub以外のリポジトリからRoleをインストールする

Last updated at Posted at 2019-09-12

背景

AnsibleでRoleを再利用するためにはAnsible GalaxyにホスティングされたRoleをインストールする方法がありますが、自分で作成したリポジトリを直接参照してインストールすることもできます。
しかし、Githubとそれ以外の場合で使用方法に差があったり、Roleのアップデートの方法がめんどくさかったりと、開発中に困ったことがあったので、まとめました。

Roleのインストール

Galaxy serverがホストするRoleを使用する場合

ansible-galaxy install Role名

Githubのリポジトリを使用する場合

ansible-galaxy install Repository名

デフォルトでは ~/.ansible/roles/ 以下にインストールされますが、-pオプションを利用することで配置先を指定することができます。
コミットハッシュとブランチ名も指定可能です。

ansible-galaxy install -p path Repository名

Github以外のリポジトリを使用する場合

ansible-galaxy install Git+Repository名

Githubの場合と同様に-pが利用できます。

Roleの一括管理

requirements.ymlを書くことでインストールするRoleを一括管理することができます。

requirements.yml
# from galaxy
- src: yatesr.timezone

# from GitHub
- src: https://github.com/bennojoy/nginx

# from GitHub, overriding the name and specifying a specific tag
- src: https://github.com/bennojoy/nginx
  version: master
  name: nginx_role

# from a webserver, where the role is packaged in a tar.gz
- src: https://some.webserver.example.com/files/master.tar.gz
  name: http-role

# from Bitbucket
- src: git+http://bitbucket.org/willthames/git-ansible-galaxy
  version: v1.4

# from Bitbucket, alternative syntax and caveats
- src: http://bitbucket.org/willthames/hg-ansible-galaxy
  scm: hg

# from GitLab or other git-based scm
- src: git@gitlab.company.com:mygroup/ansible-base.git
  scm: git
  version: "0.1"  # quoted, so YAML doesn't parse this as a floating-point value

それぞれのattributeについて解説します

  • src: roleのソースであり、必至の項目です。書き方はCLIからインストールするときと同様です。
  • scm: Gitlabの場合はgit、Bitbucketの場合はhgとしてください、GithubとGlaxyから利用する場合は書かないでください。
  • version: ダウンロードするroleのバージョンを指定します。コミットハッシュ、ブランチ名、roleのtagを指定できます。
  • name: roleを保存したい名前を記述できます。インストール後は指定した名前で使用することができます。

requirements.ymlを書いたら、以下のコマンドでインストールできます。

ansible-galaxy install -r requirements.yml

あとがき

roleをインストールする方法として、Ansible Galaxyを利用する方法とGitリポジトリをを利用する方法を挙げました。よく使うroleや大きいroleは別のリポジトリにしてしまいましょう!

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?