|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # imports - module imports
- from bench.utils import run_playbook
- from bench.utils.system import setup_sudoers
-
- # imports - third party imports
- import click
-
-
- extra_vars = {"production": True}
-
-
- @click.group(help="Install system dependencies for setting up Xhiveframework environment")
- def install():
- pass
-
-
- @click.command(
- "prerequisites",
- help="Installs pre-requisite libraries, essential tools like b2zip, htop, screen, vim, x11-fonts, python libs, cups and Redis",
- )
- def install_prerequisites():
- run_playbook("site.yml", tag="common, redis")
-
-
- @click.command(
- "mariadb", help="Install and setup MariaDB of specified version and root password"
- )
- @click.option("--mysql_root_password", "--mysql-root-password",
- "--mariadb_root_password", "--mariadb-root-password", default="")
- @click.option("--version", default="10.3")
- def install_mariadb(mysql_root_password, version):
- if mysql_root_password:
- extra_vars.update(
- {
- "mysql_root_password": mysql_root_password,
- }
- )
-
- extra_vars.update({"mariadb_version": version})
-
- run_playbook("site.yml", extra_vars=extra_vars, tag="mariadb")
-
-
- @click.command("wkhtmltopdf", help="Installs wkhtmltopdf v0.12.3 for linux")
- def install_wkhtmltopdf():
- run_playbook("site.yml", extra_vars=extra_vars, tag="wkhtmltopdf")
-
-
- @click.command("nodejs", help="Installs Node.js v8")
- def install_nodejs():
- run_playbook("site.yml", extra_vars=extra_vars, tag="nodejs")
-
-
- @click.command("psutil", help="Installs psutil via pip")
- def install_psutil():
- run_playbook("site.yml", extra_vars=extra_vars, tag="psutil")
-
-
- @click.command(
- "supervisor",
- help="Installs supervisor. If user is specified, sudoers is setup for that user",
- )
- @click.option("--user")
- def install_supervisor(user=None):
- run_playbook("site.yml", extra_vars=extra_vars, tag="supervisor")
- if user:
- setup_sudoers(user)
-
-
- @click.command(
- "nginx", help="Installs NGINX. If user is specified, sudoers is setup for that user"
- )
- @click.option("--user")
- def install_nginx(user=None):
- run_playbook("site.yml", extra_vars=extra_vars, tag="nginx")
- if user:
- setup_sudoers(user)
-
-
- @click.command("virtualbox", help="Installs virtualbox")
- def install_virtualbox():
- run_playbook("vm_build.yml", tag="virtualbox")
-
-
- @click.command("packer", help="Installs Oracle virtualbox and packer 1.2.1")
- def install_packer():
- run_playbook("vm_build.yml", tag="packer")
-
-
- @click.command(
- "fail2ban",
- help="Install fail2ban, an intrusion prevention software framework that protects computer servers from brute-force attacks",
- )
- @click.option(
- "--maxretry",
- default=6,
- help="Number of matches (i.e. value of the counter) which triggers ban action on the IP.",
- )
- @click.option(
- "--bantime",
- default=600,
- help="The counter is set to zero if no match is found within 'findtime' seconds.",
- )
- @click.option(
- "--findtime",
- default=600,
- help='Duration (in seconds) for IP to be banned for. Negative number for "permanent" ban.',
- )
- def install_failtoban(**kwargs):
- extra_vars.update(kwargs)
- run_playbook("site.yml", extra_vars=extra_vars, tag="fail2ban")
-
-
- install.add_command(install_prerequisites)
- install.add_command(install_mariadb)
- install.add_command(install_wkhtmltopdf)
- install.add_command(install_nodejs)
- install.add_command(install_psutil)
- install.add_command(install_supervisor)
- install.add_command(install_nginx)
- install.add_command(install_failtoban)
- install.add_command(install_virtualbox)
- install.add_command(install_packer)
|