geerlingguy.packer-debian
Ansibleロール: Packer Debian/Ubuntu構成 for Vagrant VirtualBox
このロールは、Debian/Ubuntu(最小限のインストールまたはフルインストールのいずれか)を構成し、Vagrant/VirtualBoxやVagrant/Vmware_desktopのデプロイメントで使用するための.boxファイルにパッケージ化する準備をします。これはPackerを使用して行います。
要件
このロールをPackerを介して実行する前に、シェルプロビジョナーを使ってAnsibleがインストールされていることを確認し、事前のVM構成(vagrantユーザーを適切なグループやsudoersファイルに追加するなど)が完了している必要があります。これには、一般的にKickstartインストールファイル(例: ks.cfg
)やPackerを使ったプレシーディングを使用します。Packerの.jsonテンプレートに含めるべきプロビジョナーの例は、次のようになります:
"provisioners": [
{
"type": "shell",
"execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'",
"script": "scripts/ansible.sh"
},
{
"type": "ansible-local",
"playbook_file": "ansible/main.yml",
"role_paths": [
"/Users/jgeerling/Dropbox/VMs/roles/geerlingguy.packer-debian"
]
}
],
これらのファイルには、少なくとも次の内容が含まれている必要があります:
scripts/ansible.sh:
Ubuntu 16.04の例
#!/bin/bash -eux
# AnsibleリポジトリとAnsibleをインストールします。
apt -y install software-properties-common
apt-add-repository ppa:ansible/ansible
apt-get update
apt-get install ansible
Debian 8.8の例
#!/bin/bash -eux
# AnsibleリポジトリとAnsibleをインストールします。
apt -y install software-properties-common
echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
apt -y update
apt -y install ansible
ansible/main.yml:
---
- hosts: all
sudo: yes
gather_facts: yes
roles:
- geerlingguy.packer-debian
クリーンアップを実行して、dd
を使って空きスペースを消去するための別のシェルプロビジョナーを追加したい場合もありますが、これは必須ではありません(Packerで生成された.boxファイルのディスクスペースが少し節約されるだけです)。
追加のロールを追加したい場合は、それらをテンプレートの.jsonファイルのrole_paths
配列に追加し、通常通りmain.yml
に含めることができます。Ansibleの構成はLinux環境内からローカル接続を介して実行されるので、関連ファイルはすべてVMにコピーする必要があります。この設定はテンプレートの.jsonファイルにあります。詳細については、Ansible Local Provisionerを参照してください。
ロール変数
使用可能な変数は以下にリストされており、デフォルト値も表示されています(defaults/main.ymlを参照)。
vmware_install_open_vm_tools: false
(VMware専用)vmware_install_open_vm_tools
変数を使用することで、VMwareボックスにインストールする統合コンポーネントの種類を選択できます。デフォルトはfalse
で、VMware Toolsがインストールされ、open-vm-tools
はインストールされません。
詳細を読む:
依存関係
なし。
サンプルプレイブック
---
- hosts: all
roles:
- geerlingguy.packer-debian
ライセンス
MIT / BSD
作者情報
このロールは2014年にJeff Geerlingによって作成され、Ansible for DevOpsの著者です。
ansible-galaxy install geerlingguy.packer-debian