From 2e9c285a2c8d7ae88926f6a5eaef5a95ed435339 Mon Sep 17 00:00:00 2001 From: shreyas Date: Wed, 2 Mar 2016 12:38:29 +0530 Subject: [PATCH] [Enhancements]Installing pip and bench --- .travis.yml | 4 +- bench/production_setup.py | 25 ++---- .../vars/main.yml => installer/__init__.py | 0 .../setup_frappe.py => installer/install.py | 74 ++++++++++++++++-- installer/playbooks/install_prereq.yml | 31 ++++++++ .../playbooks/templates/mariadb_config.cnf | 60 ++++++++++++++ installer/playbooks/templates/nginx.conf | 59 ++++++++++++++ .../ansible_playbooks/main.yml | 0 .../ansible_playbooks/readme.md | 0 .../roles/add_repos/README.md | 0 .../roles/add_repos/defaults/main.yml | 0 .../files/create_mariadb_repo_centos.sh | 0 .../roles/add_repos/handlers/main.yml | 0 .../roles/add_repos/meta/main.yml | 0 .../roles/add_repos/tasks/main.yml | 0 .../roles/add_repos/vars/main.yml | 0 .../install_n_configure_packages/README.md | 0 .../defaults/main.yml | 0 .../files/check_if_service_is_on.sh | 0 .../files/create_mariadb_config.sh | 0 .../files/debconf_postfix_mailname.sh | 0 .../files/debconf_postfix_main_mailer.sh | 0 .../files/set_mariadb_password.sh | 0 .../handlers/main.yml | 0 .../meta/main.yml | 0 .../tasks/configure_services_centos6.yml | 0 .../tasks/configure_services_centos7.yml | 0 .../tasks/generate_passwords.yml | 0 .../tasks/install_packages_centos6.yml | 0 .../tasks/install_packages_centos7.yml | 0 .../tasks/install_packages_deb.yml | 0 .../tasks/install_packages_deb8.yml | 0 .../tasks/install_packages_deb_else.yml | 0 .../tasks/install_packages_precise.yml | 0 .../tasks/install_supervisor_centos6.yml | 0 .../tasks/main.yml | 0 .../tasks/setup_debconf.yml | 0 .../tasks/start_services_centos6.yml | 0 .../tasks/start_services_centos7.yml | 0 .../vars/main.yml | 0 .../ansible_playbooks/wkhtmltopdf.yml | 0 .../brew_formula/bench.rb | 0 .../brew_formula/readme.md | 0 .../deb_package_build/bench_0.92.orig.tar.gz | Bin .../deb_package_build/debian/changelog | 0 .../deb_package_build/debian/compat | 0 .../deb_package_build/debian/control | 0 .../deb_package_build/debian/copyright | 0 .../deb_package_build/debian/postinst | 0 .../deb_package_build/debian/postrm | 0 .../deb_package_build/debian/rules | 0 .../deb_package_build/debian/source/format | 0 .../deb_package_build/readme.md | 0 .../packages/bench-0.92-1.i686.rpm | Bin .../packages/bench-0.92-1.x86_64.rpm | Bin .../packages/bench_0.92_amd64.deb | Bin {installers => os_packages}/readme.md | 0 .../rpm_package_build/bench-0.92.tar.gz | Bin .../rpm_package_build/bench.spec.i686 | 0 .../rpm_package_build/bench.spec.x86_64 | 0 .../rpm_package_build/readme.md | 0 61 files changed, 229 insertions(+), 24 deletions(-) rename installers/ansible_playbooks/roles/add_repos/vars/main.yml => installer/__init__.py (100%) rename install_scripts/setup_frappe.py => installer/install.py (63%) create mode 100644 installer/playbooks/install_prereq.yml create mode 100644 installer/playbooks/templates/mariadb_config.cnf create mode 100644 installer/playbooks/templates/nginx.conf rename {installers => os_packages}/ansible_playbooks/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/readme.md (100%) rename {installers => os_packages}/ansible_playbooks/roles/add_repos/README.md (100%) rename {installers => os_packages}/ansible_playbooks/roles/add_repos/defaults/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/add_repos/files/create_mariadb_repo_centos.sh (100%) rename {installers => os_packages}/ansible_playbooks/roles/add_repos/handlers/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/add_repos/meta/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/add_repos/tasks/main.yml (100%) rename installers/deb_package_build/debian/copyright => os_packages/ansible_playbooks/roles/add_repos/vars/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/README.md (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/defaults/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/files/check_if_service_is_on.sh (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/files/create_mariadb_config.sh (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_mailname.sh (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_main_mailer.sh (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/files/set_mariadb_password.sh (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/handlers/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/meta/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos6.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos7.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/generate_passwords.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos6.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos7.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb8.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb_else.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_precise.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/install_supervisor_centos6.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/setup_debconf.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos6.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos7.yml (100%) rename {installers => os_packages}/ansible_playbooks/roles/install_n_configure_packages/vars/main.yml (100%) rename {installers => os_packages}/ansible_playbooks/wkhtmltopdf.yml (100%) rename {installers => os_packages}/brew_formula/bench.rb (100%) rename {installers => os_packages}/brew_formula/readme.md (100%) rename {installers => os_packages}/deb_package_build/bench_0.92.orig.tar.gz (100%) rename {installers => os_packages}/deb_package_build/debian/changelog (100%) rename {installers => os_packages}/deb_package_build/debian/compat (100%) rename {installers => os_packages}/deb_package_build/debian/control (100%) create mode 100644 os_packages/deb_package_build/debian/copyright rename {installers => os_packages}/deb_package_build/debian/postinst (100%) rename {installers => os_packages}/deb_package_build/debian/postrm (100%) rename {installers => os_packages}/deb_package_build/debian/rules (100%) rename {installers => os_packages}/deb_package_build/debian/source/format (100%) rename {installers => os_packages}/deb_package_build/readme.md (100%) rename {installers => os_packages}/packages/bench-0.92-1.i686.rpm (100%) rename {installers => os_packages}/packages/bench-0.92-1.x86_64.rpm (100%) rename {installers => os_packages}/packages/bench_0.92_amd64.deb (100%) rename {installers => os_packages}/readme.md (100%) rename {installers => os_packages}/rpm_package_build/bench-0.92.tar.gz (100%) rename {installers => os_packages}/rpm_package_build/bench.spec.i686 (100%) rename {installers => os_packages}/rpm_package_build/bench.spec.x86_64 (100%) rename {installers => os_packages}/rpm_package_build/readme.md (100%) diff --git a/.travis.yml b/.travis.yml index bb23ac9d..c839a062 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,11 @@ python: install: - sudo apt-get purge -y mysql-common - - sudo bash $TRAVIS_BUILD_DIR/install_scripts/setup_frappe.sh --skip-install-bench --mysql-root-password travis + - sudo python $TRAVIS_BUILD_DIR/installer/install.py --user travis --skip-bench-setup + # - sudo bash $TRAVIS_BUILD_DIR/install_scripts/setup_frappe.sh --skip-install-bench --mysql-root-password travis - mkdir -p ~/bench-repo - cp -r $TRAVIS_BUILD_DIR/* ~/bench-repo/ + - cd ~ && sudo python bench-repo/installer/install.py --only-dependencies script: - cd ~ diff --git a/bench/production_setup.py b/bench/production_setup.py index 08e9853a..d017e159 100644 --- a/bench/production_setup.py +++ b/bench/production_setup.py @@ -1,4 +1,4 @@ -from .utils import get_program, exec_cmd, get_cmd_output, fix_prod_setup_perms, get_config, get_bench_name +from .utils import get_program, exec_cmd, get_cmd_output, fix_prod_setup_perms, get_config from .config import generate_nginx_config, generate_supervisor_config from jinja2 import Environment, PackageLoader import os @@ -52,32 +52,21 @@ def copy_default_nginx_config(): def setup_production(user, bench='.'): generate_supervisor_config(bench=bench, user=user) generate_nginx_config(bench=bench) - fix_prod_setup_perms(bench, frappe_user=user) + fix_prod_setup_perms(frappe_user=user) remove_default_nginx_configs() - bench_name = get_bench_name(bench) - nginx_conf = '/etc/nginx/conf.d/{bench_name}.conf'.format(bench_name=bench_name) - if is_centos7(): - supervisor_conf_extn = "ini" + supervisor_conf_filename = 'frappe.ini' copy_default_nginx_config() else: - supervisor_conf_extn = "conf" + supervisor_conf_filename = 'frappe.conf' - supervisor_conf = os.path.join(get_supervisor_confdir(), '{bench_name}.{extn}'.format( - bench_name=bench_name, extn=supervisor_conf_extn)) - links = ( - (os.path.abspath(os.path.join(bench, 'config', 'nginx.conf')), nginx_conf), - (os.path.abspath(os.path.join(bench, 'config', 'supervisor.conf')), supervisor_conf), - ) - - for src, dest in links: - if not os.path.exists(dest): - os.symlink(src, dest) + + os.symlink(os.path.abspath(os.path.join(bench, 'config', 'supervisor.conf')), os.path.join(get_supervisor_confdir(), supervisor_conf_filename)) + os.symlink(os.path.abspath(os.path.join(bench, 'config', 'nginx.conf')), '/etc/nginx/conf.d/frappe.conf') exec_cmd('supervisorctl reload') if os.environ.get('NO_SERVICE_RESTART'): return - restart_service('nginx') diff --git a/installers/ansible_playbooks/roles/add_repos/vars/main.yml b/installer/__init__.py similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/vars/main.yml rename to installer/__init__.py diff --git a/install_scripts/setup_frappe.py b/installer/install.py similarity index 63% rename from install_scripts/setup_frappe.py rename to installer/install.py index 84701c3a..f15826c1 100644 --- a/install_scripts/setup_frappe.py +++ b/installer/install.py @@ -4,22 +4,34 @@ import sys import pwd import stat import subprocess -from distutils.spawn import find_executable import string + from random import choice +from distutils.spawn import find_executable +from setuptools.command import easy_install as easy_install def install_bench(args): # pre-requisites for bench repo cloning + install_pip() + install_ansible() install_git() # which user to use for bench repo cloning user_password = add_user(args.user) - # clone bench repo! + # stop install + if args.skip_bench_setup: + return - # install pip + # clone bench repo + cloned = clone_bench_repo(args.user) + + # install pre-requisites + installed = install_prerequisites(args.user) # install bench + # if cloned: + # install_bench_cmd(user) def install_python27(): version = (sys.version_info[0], sys.version_info[1]) @@ -91,6 +103,40 @@ def add_user(user): return user_password +def install_pip(): + """Install pip for the user or upgrade to latest version if already present""" + try: + import pip + except ImportError: + easy_install.main(['pip']) + +def install_ansible(): + try: + import ansible + except ImportError: + import pip + pip.main(["install", "ansible"]) + +def clone_bench_repo(user): + """Clones the bench repository in the user folder""" + bench_repo = os.path.join(get_user_folder(user), 'bench-repo') + + success = run_os_command( + {"git": "git clone https://github.com/frappe/bench {bench_repo}".format(bench_repo=bench_repo)} + ) + + return success + +def install_dependencies(): + """Installs the pre-requisites like mariadb, nginx, redis etc. for the user""" + playbooks_path = get_playbooks_path() + + for playbook in os.listdir(playbooks_path): + if playbook.endswith('.yml'): + success = run_playbook(os.path.join(playbooks_path, playbook)) + + return success + def run_os_command(command_map): """command_map is a dictionary of {"executable": command}. For ex. {"apt-get": "sudo apt-get install -y python2.7"} """ success = False @@ -115,13 +161,27 @@ def get_random_string(length=16): """generate a random string""" return ''.join([choice(string.letters + string.digits) for i in range(length)]) +def get_playbooks_path(): + return os.path.abspath(os.path.join(os.getcwd(), 'bench-repo', 'installer', 'playbooks')) + +def run_playbook(playbook_name): + success = subprocess.check_call("ansible-playbook -c local {playbook_name}".format(playbook_name=playbook_name).split()) + return success + +def install_bench_cmd(user): + """Installs bench using pip from the bench-repo""" + pass + def parse_commandline_args(): import argparse parser = argparse.ArgumentParser(description='Frappe Installer') parser.add_argument('--user', metavar='USER', dest='user', action='store', help="System user which will be used to start various processes required by Frappe framework. If this user doesn't exist, it will be created.") - + parser.add_argument('--skip-bench-setup', dest='skip_bench_setup', action='store_true', default=False, + help="Skip cloning and installation of bench.") + parser.add_argument('--only-dependencies', dest='only_dependencies', action='store_true', default=False, + help="Only install dependencies via ansible") args = parser.parse_args() return args @@ -135,4 +195,8 @@ if __name__ == "__main__": args = parse_commandline_args() - install_bench(args) + if args.only_dependencies: + install_dependencies() + + else: + install_bench(args) diff --git a/installer/playbooks/install_prereq.yml b/installer/playbooks/install_prereq.yml new file mode 100644 index 00000000..7c6c9ad2 --- /dev/null +++ b/installer/playbooks/install_prereq.yml @@ -0,0 +1,31 @@ +--- + - name: Install pre-requisites to setup bench + hosts: localhost + become: yes + become_user: root + vars: + - mysql_conf_tpl: ../templates/mariadb_config.cnf + - nginx_conf_file: ../templates/nginx.conf + - mysql_secure_installation: True + roles: + - mariadb + - nginx + - wkhtmltopdf + tasks: + - name: Install the 'Development tools' package group (Redhat) + yum: name="@Development tools" state=present + when: ansible_os_family == 'RedHat' + - name: Install redis # For Redhat + yum: name={{ item }} state=present + with_items: + - redis + - nodejs + - npm + when: ansible_os_family == 'RedHat' + - name: Install redis # For Debian + apt: pkg={{ item }} state=present force=yes + with_items: + - redis-server + - nodejs + - npm + when: ansible_os_family == 'Debian' diff --git a/installer/playbooks/templates/mariadb_config.cnf b/installer/playbooks/templates/mariadb_config.cnf new file mode 100644 index 00000000..6d4bcf28 --- /dev/null +++ b/installer/playbooks/templates/mariadb_config.cnf @@ -0,0 +1,60 @@ +[mysqld] + +# GENERAL # +user = mysql +default-storage-engine = InnoDB +socket = /var/lib/mysql/mysql.sock +pid-file = /var/lib/mysql/mysql.pid + +# MyISAM # +key-buffer-size = 32M +myisam-recover = FORCE,BACKUP + +# SAFETY # +max-allowed-packet = 16M +max-connect-errors = 1000000 +innodb = FORCE + +# DATA STORAGE # +datadir = /var/lib/mysql/ + +# BINARY LOGGING # +log-bin = /var/lib/mysql/mysql-bin +expire-logs-days = 14 +sync-binlog = 1 + +# REPLICATION # +server-id = 1 + +# CACHES AND LIMITS # +tmp-table-size = 32M +max-heap-table-size = 32M +query-cache-type = 0 +query-cache-size = 0 +max-connections = 500 +thread-cache-size = 50 +open-files-limit = 65535 +table-definition-cache = 4096 +table-open-cache = 10240 + +# INNODB # +innodb-flush-method = O_DIRECT +innodb-log-files-in-group = 2 +innodb-log-file-size = 512M +innodb-flush-log-at-trx-commit = 1 +innodb-file-per-table = 1 +innodb-buffer-pool-size = {{ (ansible_memtotal_mb*0.685)|round|int }}M +innodb-file-format = barracuda +innodb-large-prefix = 1 +collation-server = utf8mb4_unicode_ci +character-set-server = utf8mb4 +character-set-client-handshake = FALSE + +# LOGGING # +log-error = /var/lib/mysql/mysql-error.log +log-queries-not-using-indexes = 0 +slow-query-log = 1 +slow-query-log-file = /var/lib/mysql/mysql-slow.log + +[mysql] +default-character-set = utf8mb4 diff --git a/installer/playbooks/templates/nginx.conf b/installer/playbooks/templates/nginx.conf new file mode 100644 index 00000000..fa487e86 --- /dev/null +++ b/installer/playbooks/templates/nginx.conf @@ -0,0 +1,59 @@ +user nginx; +worker_processes 6; +worker_rlimit_nofile 65535; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + + +events { + worker_connections 2048; + multi_accept on; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + server_tokens off; + #tcp_nopush on; + + keepalive_timeout 10; + keepalive_requests 10; + + gzip on; + gzip_disable "msie6"; + + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_buffers 16 8k; + gzip_http_version 1.1; + gzip_types text/plain text/css application/json application/javascript image/svg+xml text/html "application/json; charset: utf-8" "text/html; charset: utf-8" application/font-woff; + + server_names_hash_max_size 4096; + #server_names_hash_bucket_size 64; + + open_file_cache max=65000 inactive=1m; + open_file_cache_valid 5s; + open_file_cache_min_uses 1; + open_file_cache_errors on; + + ssl_protocols SSLv3 TLSv1; + ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM; + ssl_prefer_server_ciphers on; + + proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=web-cache:8m max_size=1000m inactive=600m; + + include /etc/nginx/conf.d/*.conf; +} \ No newline at end of file diff --git a/installers/ansible_playbooks/main.yml b/os_packages/ansible_playbooks/main.yml similarity index 100% rename from installers/ansible_playbooks/main.yml rename to os_packages/ansible_playbooks/main.yml diff --git a/installers/ansible_playbooks/readme.md b/os_packages/ansible_playbooks/readme.md similarity index 100% rename from installers/ansible_playbooks/readme.md rename to os_packages/ansible_playbooks/readme.md diff --git a/installers/ansible_playbooks/roles/add_repos/README.md b/os_packages/ansible_playbooks/roles/add_repos/README.md similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/README.md rename to os_packages/ansible_playbooks/roles/add_repos/README.md diff --git a/installers/ansible_playbooks/roles/add_repos/defaults/main.yml b/os_packages/ansible_playbooks/roles/add_repos/defaults/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/defaults/main.yml rename to os_packages/ansible_playbooks/roles/add_repos/defaults/main.yml diff --git a/installers/ansible_playbooks/roles/add_repos/files/create_mariadb_repo_centos.sh b/os_packages/ansible_playbooks/roles/add_repos/files/create_mariadb_repo_centos.sh similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/files/create_mariadb_repo_centos.sh rename to os_packages/ansible_playbooks/roles/add_repos/files/create_mariadb_repo_centos.sh diff --git a/installers/ansible_playbooks/roles/add_repos/handlers/main.yml b/os_packages/ansible_playbooks/roles/add_repos/handlers/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/handlers/main.yml rename to os_packages/ansible_playbooks/roles/add_repos/handlers/main.yml diff --git a/installers/ansible_playbooks/roles/add_repos/meta/main.yml b/os_packages/ansible_playbooks/roles/add_repos/meta/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/meta/main.yml rename to os_packages/ansible_playbooks/roles/add_repos/meta/main.yml diff --git a/installers/ansible_playbooks/roles/add_repos/tasks/main.yml b/os_packages/ansible_playbooks/roles/add_repos/tasks/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/add_repos/tasks/main.yml rename to os_packages/ansible_playbooks/roles/add_repos/tasks/main.yml diff --git a/installers/deb_package_build/debian/copyright b/os_packages/ansible_playbooks/roles/add_repos/vars/main.yml similarity index 100% rename from installers/deb_package_build/debian/copyright rename to os_packages/ansible_playbooks/roles/add_repos/vars/main.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/README.md b/os_packages/ansible_playbooks/roles/install_n_configure_packages/README.md similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/README.md rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/README.md diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/defaults/main.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/defaults/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/defaults/main.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/defaults/main.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/files/check_if_service_is_on.sh b/os_packages/ansible_playbooks/roles/install_n_configure_packages/files/check_if_service_is_on.sh similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/files/check_if_service_is_on.sh rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/files/check_if_service_is_on.sh diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/files/create_mariadb_config.sh b/os_packages/ansible_playbooks/roles/install_n_configure_packages/files/create_mariadb_config.sh similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/files/create_mariadb_config.sh rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/files/create_mariadb_config.sh diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_mailname.sh b/os_packages/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_mailname.sh similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_mailname.sh rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_mailname.sh diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_main_mailer.sh b/os_packages/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_main_mailer.sh similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_main_mailer.sh rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/files/debconf_postfix_main_mailer.sh diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/files/set_mariadb_password.sh b/os_packages/ansible_playbooks/roles/install_n_configure_packages/files/set_mariadb_password.sh similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/files/set_mariadb_password.sh rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/files/set_mariadb_password.sh diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/handlers/main.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/handlers/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/handlers/main.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/handlers/main.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/meta/main.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/meta/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/meta/main.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/meta/main.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos6.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos6.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos6.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos6.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos7.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos7.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos7.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/configure_services_centos7.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/generate_passwords.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/generate_passwords.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/generate_passwords.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/generate_passwords.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos6.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos6.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos6.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos6.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos7.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos7.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos7.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_centos7.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb8.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb8.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb8.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb8.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb_else.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb_else.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb_else.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_deb_else.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_precise.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_precise.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_precise.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_packages_precise.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_supervisor_centos6.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_supervisor_centos6.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/install_supervisor_centos6.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/install_supervisor_centos6.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/main.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/main.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/main.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/setup_debconf.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/setup_debconf.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/setup_debconf.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/setup_debconf.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos6.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos6.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos6.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos6.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos7.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos7.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos7.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/tasks/start_services_centos7.yml diff --git a/installers/ansible_playbooks/roles/install_n_configure_packages/vars/main.yml b/os_packages/ansible_playbooks/roles/install_n_configure_packages/vars/main.yml similarity index 100% rename from installers/ansible_playbooks/roles/install_n_configure_packages/vars/main.yml rename to os_packages/ansible_playbooks/roles/install_n_configure_packages/vars/main.yml diff --git a/installers/ansible_playbooks/wkhtmltopdf.yml b/os_packages/ansible_playbooks/wkhtmltopdf.yml similarity index 100% rename from installers/ansible_playbooks/wkhtmltopdf.yml rename to os_packages/ansible_playbooks/wkhtmltopdf.yml diff --git a/installers/brew_formula/bench.rb b/os_packages/brew_formula/bench.rb similarity index 100% rename from installers/brew_formula/bench.rb rename to os_packages/brew_formula/bench.rb diff --git a/installers/brew_formula/readme.md b/os_packages/brew_formula/readme.md similarity index 100% rename from installers/brew_formula/readme.md rename to os_packages/brew_formula/readme.md diff --git a/installers/deb_package_build/bench_0.92.orig.tar.gz b/os_packages/deb_package_build/bench_0.92.orig.tar.gz similarity index 100% rename from installers/deb_package_build/bench_0.92.orig.tar.gz rename to os_packages/deb_package_build/bench_0.92.orig.tar.gz diff --git a/installers/deb_package_build/debian/changelog b/os_packages/deb_package_build/debian/changelog similarity index 100% rename from installers/deb_package_build/debian/changelog rename to os_packages/deb_package_build/debian/changelog diff --git a/installers/deb_package_build/debian/compat b/os_packages/deb_package_build/debian/compat similarity index 100% rename from installers/deb_package_build/debian/compat rename to os_packages/deb_package_build/debian/compat diff --git a/installers/deb_package_build/debian/control b/os_packages/deb_package_build/debian/control similarity index 100% rename from installers/deb_package_build/debian/control rename to os_packages/deb_package_build/debian/control diff --git a/os_packages/deb_package_build/debian/copyright b/os_packages/deb_package_build/debian/copyright new file mode 100644 index 00000000..e69de29b diff --git a/installers/deb_package_build/debian/postinst b/os_packages/deb_package_build/debian/postinst similarity index 100% rename from installers/deb_package_build/debian/postinst rename to os_packages/deb_package_build/debian/postinst diff --git a/installers/deb_package_build/debian/postrm b/os_packages/deb_package_build/debian/postrm similarity index 100% rename from installers/deb_package_build/debian/postrm rename to os_packages/deb_package_build/debian/postrm diff --git a/installers/deb_package_build/debian/rules b/os_packages/deb_package_build/debian/rules similarity index 100% rename from installers/deb_package_build/debian/rules rename to os_packages/deb_package_build/debian/rules diff --git a/installers/deb_package_build/debian/source/format b/os_packages/deb_package_build/debian/source/format similarity index 100% rename from installers/deb_package_build/debian/source/format rename to os_packages/deb_package_build/debian/source/format diff --git a/installers/deb_package_build/readme.md b/os_packages/deb_package_build/readme.md similarity index 100% rename from installers/deb_package_build/readme.md rename to os_packages/deb_package_build/readme.md diff --git a/installers/packages/bench-0.92-1.i686.rpm b/os_packages/packages/bench-0.92-1.i686.rpm similarity index 100% rename from installers/packages/bench-0.92-1.i686.rpm rename to os_packages/packages/bench-0.92-1.i686.rpm diff --git a/installers/packages/bench-0.92-1.x86_64.rpm b/os_packages/packages/bench-0.92-1.x86_64.rpm similarity index 100% rename from installers/packages/bench-0.92-1.x86_64.rpm rename to os_packages/packages/bench-0.92-1.x86_64.rpm diff --git a/installers/packages/bench_0.92_amd64.deb b/os_packages/packages/bench_0.92_amd64.deb similarity index 100% rename from installers/packages/bench_0.92_amd64.deb rename to os_packages/packages/bench_0.92_amd64.deb diff --git a/installers/readme.md b/os_packages/readme.md similarity index 100% rename from installers/readme.md rename to os_packages/readme.md diff --git a/installers/rpm_package_build/bench-0.92.tar.gz b/os_packages/rpm_package_build/bench-0.92.tar.gz similarity index 100% rename from installers/rpm_package_build/bench-0.92.tar.gz rename to os_packages/rpm_package_build/bench-0.92.tar.gz diff --git a/installers/rpm_package_build/bench.spec.i686 b/os_packages/rpm_package_build/bench.spec.i686 similarity index 100% rename from installers/rpm_package_build/bench.spec.i686 rename to os_packages/rpm_package_build/bench.spec.i686 diff --git a/installers/rpm_package_build/bench.spec.x86_64 b/os_packages/rpm_package_build/bench.spec.x86_64 similarity index 100% rename from installers/rpm_package_build/bench.spec.x86_64 rename to os_packages/rpm_package_build/bench.spec.x86_64 diff --git a/installers/rpm_package_build/readme.md b/os_packages/rpm_package_build/readme.md similarity index 100% rename from installers/rpm_package_build/readme.md rename to os_packages/rpm_package_build/readme.md