mirror of
https://github.com/frappe/bench.git
synced 2024-11-11 15:51:03 +00:00
VM build fixes
- added bench command to install packer 1.2.1
This commit is contained in:
parent
fe858bfa36
commit
30b12a6dd4
@ -1,5 +1,5 @@
|
|||||||
import os, sys, json, click
|
import os, sys, json, click
|
||||||
from bench.utils import run_playbook, setup_sudoers
|
from bench.utils import run_playbook, setup_sudoers, is_root
|
||||||
|
|
||||||
extra_vars = {"production": True}
|
extra_vars = {"production": True}
|
||||||
|
|
||||||
@ -48,7 +48,11 @@ def install_nginx(user=None):
|
|||||||
|
|
||||||
@click.command('virtualbox')
|
@click.command('virtualbox')
|
||||||
def install_virtualbox():
|
def install_virtualbox():
|
||||||
run_playbook('roles/virtualbox/tasks/main.yml', extra_vars=extra_vars)
|
run_playbook('roles/virtualbox/tasks/main.yml')
|
||||||
|
|
||||||
|
@click.command('packer')
|
||||||
|
def install_packer():
|
||||||
|
run_playbook('roles/packer/tasks/main.yml')
|
||||||
|
|
||||||
@click.command('fail2ban')
|
@click.command('fail2ban')
|
||||||
@click.option('--maxretry', default=6, help="Number of matches (i.e. value of the counter) which triggers ban action on the IP.")
|
@click.option('--maxretry', default=6, help="Number of matches (i.e. value of the counter) which triggers ban action on the IP.")
|
||||||
@ -67,3 +71,4 @@ install.add_command(install_supervisor)
|
|||||||
install.add_command(install_nginx)
|
install.add_command(install_nginx)
|
||||||
install.add_command(install_failtoban)
|
install.add_command(install_failtoban)
|
||||||
install.add_command(install_virtualbox)
|
install.add_command(install_virtualbox)
|
||||||
|
install.add_command(install_packer)
|
||||||
|
6
playbooks/roles/packer/tasks/debian_family.yml
Normal file
6
playbooks/roles/packer/tasks/debian_family.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: Install unzip
|
||||||
|
apt: pkg={{ item }} update_cache=yes state=present
|
||||||
|
with_items:
|
||||||
|
- unzip
|
||||||
|
...
|
45
playbooks/roles/packer/tasks/main.yml
Normal file
45
playbooks/roles/packer/tasks/main.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
- name: Check if packer already exists
|
||||||
|
stat:
|
||||||
|
path: ~/.local/bin/packer
|
||||||
|
register: packer
|
||||||
|
|
||||||
|
- name: Check if packer version is 1.2.1
|
||||||
|
command: ~/.local/bin/packer --version
|
||||||
|
register: packer_version
|
||||||
|
when: packer.stat.exists
|
||||||
|
|
||||||
|
- name: Create the ~/.local/bin, if it doesnt exist already
|
||||||
|
file:
|
||||||
|
path: ~/.local/bin/
|
||||||
|
state: directory
|
||||||
|
when: packer.stat.exists == False
|
||||||
|
|
||||||
|
- include_tasks: debian_family.yml
|
||||||
|
when: ansible_os_family == 'Debian' and packer.stat.exists == False
|
||||||
|
|
||||||
|
- include_tasks: redhat_family.yml
|
||||||
|
when: ansible_os_family == "RedHat" and packer.stat.exists == False
|
||||||
|
|
||||||
|
- name: Delete packer if < 1.2.1
|
||||||
|
file:
|
||||||
|
state: absent
|
||||||
|
path: ~/.local/bin/packer
|
||||||
|
when: (packer.stat.exists) and (packer_version | version_compare('1.2.1', '<'))
|
||||||
|
|
||||||
|
- name: Download packer zip file
|
||||||
|
command: wget https://releases.hashicorp.com/packer/1.2.1/packer_1.2.1_linux_amd64.zip
|
||||||
|
chdir: ~/.local/bin/
|
||||||
|
when: (packer.stat.exists == False) or (packer_version | version_compare('1.2.1', '<'))
|
||||||
|
|
||||||
|
- name: Unzip the packer binary in ~/.local/bin
|
||||||
|
chdir: ~/.local/bin/
|
||||||
|
command: unzip packer_1.2.1_linux_amd64.zip
|
||||||
|
when: (packer.stat.exists == False) or (packer_version | version_compare('1.2.1', '<'))
|
||||||
|
|
||||||
|
- name: Remove the downloaded packer zip file
|
||||||
|
file:
|
||||||
|
state: absent
|
||||||
|
path: ~/.local/bin/packer_1.2.1_linux_amd64.zip
|
||||||
|
when: (packer.stat.exists == False) or (packer_version | version_compare('1.2.1', '<'))
|
||||||
|
...
|
7
playbooks/roles/packer/tasks/redhat_family.yml
Normal file
7
playbooks/roles/packer/tasks/redhat_family.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Install unzip
|
||||||
|
yum: name={{ item }} enablerepo=mariadb state=present
|
||||||
|
with_items:
|
||||||
|
- unzip
|
||||||
|
...
|
@ -23,7 +23,7 @@ def install_virtualbox():
|
|||||||
check_output(['bench', 'install', 'virtualbox'])
|
check_output(['bench', 'install', 'virtualbox'])
|
||||||
|
|
||||||
def install_packer():
|
def install_packer():
|
||||||
pass
|
check_output(['bench', 'install', 'packer'])
|
||||||
|
|
||||||
def build_vm():
|
def build_vm():
|
||||||
check_output("./packer build vm.json", shell=True)
|
check_output("./packer build vm.json", shell=True)
|
||||||
|
Loading…
Reference in New Issue
Block a user