Closed BrianGilbert closed 9 years ago
In case it helps.. here are the cnf files that I'm using..
###
### Barracuda version BOA-2.4.1
###
### Configuration stored in the /root/.barracuda.cnf file.
### This example is for public install mode - see docs/INSTALL.txt
###
### NOTE: the group of settings displayed below will *not* be overridden
### on upgrade by the Barracuda script nor by this configuration file.
### They can be defined only on initial Barracuda install.
###
_EASY_HOSTNAME="vagrant.vd" #------ Hostname auto-configured via _EASY_SETUP
_LOCAL_NETWORK_HN="" #---------- Hostname if in localhost mode - auto-conf
_LOCAL_NETWORK_IP="" #---------- Web server IP if in localhost mode - auto-conf
_MY_FRONT="master.vagrant.vd" #---- URL of the Aegir Master Instance control panel
_MY_HOSTN="host.vagrant.vd" #----------- Allows to define server hostname
_MY_OWNIP="172.16.0.69" #------ Allows to specify web server IP if not default
_SMTP_RELAY_HOST="" #----------- Allows to configure simple SMTP relay (w/o pwd)
_SMTP_RELAY_TEST=NO #---------- Allows to skip SMTP availability tests when NO
_THIS_DB_HOST=localhost #------- Allows to use hostname in DB grants when FQDN
###
### NOTE: the group of settings displayed below
### will *override* all listed settings in the Barracuda script,
### both on initial install and upgrade.
###
_AUTOPILOT=YES #----------------- Allows to skip all Yes/No questions when YES
_DEBUG_MODE=NO #---------------- Allows to enable Drush debugging when YES
_MY_EMAIL="brian@mydomain.com" #---------- System admin e-mail
_XTRAS_LIST="IMG SR4" #---------------- See docs/NOTES.txt for details on add-ons
###
_MODULES_FIX=NO #--------------- Runs daily modules enabling/disabling when YES
_MODULES_SKIP="" #-------------- Modules (machine names) to never auto-disable
_PERMISSIONS_FIX=NO #----------- Allows to run daily permissions fix when YES
###
_CPU_CRIT_RATIO=9 #------------- Max load per CPU core before killing PHP/Drush
_CPU_MAX_RATIO=6 #-------------- Max load per CPU core before disabling Nginx
_CPU_SPIDER_RATIO=3 #----------- Max load per CPU core before blocking spiders
###
_DB_BINARY_LOG=NO #------------- Allows to enable binary logging when YES
_DB_ENGINE=InnoDB #------------- Allows to specify default engine for Drupal 6
_DB_SERIES=10.0 #---------------- Allows to install new MariaDB version when 10.0
_DB_SERVER=MariaDB #------------ Allows to install only MariaDB DB server
_INNODB_LOG_FILE_SIZE=AUTO #---- Allows to change InnoDB log file size: 10-500
###
_DNS_SETUP_TEST=NO #----------- Allows to skip DNS testing when NO
_EXTRA_PACKAGES="" #------------ Installs listed extra packages with apt-get
_FORCE_GIT_MIRROR="" #---------- Allows to use different mirror (deprecated)
_LOCAL_DEBIAN_MIRROR= #--------- Allows to force non-default Debian mirror
_LOCAL_UBUNTU_MIRROR= #--------- Allows to force non-default Ubuntu mirror
_NEWRELIC_KEY= #---------------- Installs New Relic when license key is set
_SCOUT_KEY= #------------------- Installs Scout App when license key is set
###
_NGINX_DOS_LIMIT=300 #---------- Allows to override default 250/300 limit
_NGINX_EXTRA_CONF="" #---------- Allows to add custom options to Nginx build
_NGINX_FORWARD_SECRECY=YES #----- Installs PFS Nginx support when YES
_NGINX_LDAP=NO #---------------- Installs LDAP Nginx support when YES
_NGINX_NAXSI=NO #--------------- Installs NAXSI WAF when YES - experimental
_NGINX_SPDY=YES #---------------- Installs SPDY Nginx support when YES
_NGINX_WORKERS=AUTO #----------- Allows to override AUTO with a valid integer
###
_PHP_CLI_VERSION=5.5 #---------- PHP-CLI used by Master Instance: 5.{3,4,5,6}
_PHP_EXTRA_CONF="" #------------ Allows to add custom options to PHP build
_PHP_FPM_DENY="" #-------------- Modify disable_functions -- see info below
_PHP_FPM_VERSION=5.5 #---------- PHP-FPM used by Master Instance: 5.{3,4,5,6}
_PHP_FPM_WORKERS=AUTO #--------- Allows to override AUTO with a valid integer
_PHP_GEOS=NO #------------------ Installs GEOS for all PHP versions when YES
_PHP_MONGODB=NO #--------------- Installs MONGODB for PHP 5.3 only when YES
_PHP_MULTI_INSTALL="5.5" #------ Lists PHP versions to install: 5.3 5.4 5.5 5.6
_PHP_SINGLE_INSTALL="" #-------- Allows to force single PHP version, like: 5.5
###
_REDIS_LISTEN_MODE=PORT #------- Redis listen mode: PORT or SOCKET (recommended)
_RESERVED_RAM=0 #--------------- Allows to reserve RAM (in MB) for non-BOA apps
_SPEED_VALID_MAX=3600 #--------- Defines Speed Booster hourly cache TTL in sec
_SSH_FROM_SOURCES=NO #---------- Allows to force OpenSSH build from sources
_SSH_PORT=22 #------------------ Allows to configure non-standard SSH port
_SSL_FROM_SOURCES=NO #---------- Allows to force OpenSSL build from sources
_STRICT_BIN_PERMISSIONS=YES #--- Aggressively protect all binaries when YES
_STRONG_PASSWORDS=NO #---------- Configurable length: 8-128, YES (32), NO (8)
###
_CUSTOM_CONFIG_CSF=NO #--------- Protects custom CSF config when YES
_CUSTOM_CONFIG_LSHELL=NO #------ Protects custom Limited Shell config when YES
_CUSTOM_CONFIG_REDIS=NO #------- Protects custom Redis config when YES
_CUSTOM_CONFIG_SQL=NO #--------- Protects custom SQL config when YES
###
_AEGIR_UPGRADE_ONLY=NO #-------- Run only Aegir upgrade when YES (deprecated)
_SYSTEM_UPGRADE_ONLY=NO #------- Managed on the fly with 'system' keyword
###
### Barracuda version BOA-2.4.1
###
###
### HINT: Check also control files docs in: docs/ctrl/system.ctrl
###
###
### Extra, special purpose settings are listed below.
###
###
### By default BOA configures your system to use as much RAM as safely available
### but if you want to make the configuration more precize, add this extra
### variable to use MySQLTuner on the fly to detect optimal memory allocation.
### This check is no longer enabled by default, because it is very expensive
### method on systems with not enough resources and many sites hosted.
###
_USE_MYSQLTUNER=NO #------------ Use MySQLTuner to configure SQL limits when YES
###
### You can configure BOA to run automated upgrades to latest stable version
### for both Barracuda and all Octopus instances with three variables, empty
### by default. All three variables must be defined to enable auto-upgrade.
### You can set _AUTO_UP_MONTH and _AUTO_UP_DAY to any date in the past
### if you wish to enable only weekly system upgrades.
###
### Remember that one-time upgrades will include complete upgrade to latest BOA
### stable for Barracuda and all Octopus instances, while weekly upgrade is
### designed to run only 'barracuda up-stable system' upgrade.
###
_AUTO_UP_WEEKLY= #-------------- Day of week (1-7) for weekly system upgrades
_AUTO_UP_MONTH= #--------------- Month (1-12) to define date of one-time upgrade
_AUTO_UP_DAY= #----------------- Day (1-31) to define date of one-time upgrade
###
### You can whitelist extra binaries to make them available for web server
### requests, in addition to already whitelisted, known as safe binaries.
###
### Please be aware that you could easily open security holes by whitelisting
### commands which may provide access to otherwise not available parts of
### the system, because the exec() in PHP doesn't respect other limitations
### like open_basedir directive.
###
### You should list only filenames, not full paths, for example:
###
### _BACKEND_ITEMS_LIST="git foo bar"
###
_BACKEND_ITEMS_LIST=
###
### The BOA Skynet auto-updates were initially limited to checking for new BOA
### release and notifying the system admin daily, until the system has been
### upgraded to latest stable release.
###
### Next, since people tend to forget about running meta-installers update
### before running barracuda or octopus upgrade, and it generated a ton of
### unneeded tickets, confusion and frustration, we have automated these
### updates, so all your meta-installers were updated daily.
###
### Then #drupageddon happened, and we realized that we could make all existing
### BOA systems secure, auto-magically, in the first 60 minutes after the
### #drupageddon alert was published. Only if we could have a running mechanism
### in place to apply very trivial but how important patch to all your D7 sites/
### /codebases while you were on vacation, out of town, or just AFK anywhere.
###
### So we have added Drupal core monitoring and auto-patching to make sure you
### never run vulnerable codebase again. To make it effective, we have scheduled
### to run these checks hourly.
###
### Then we have added also hourly updates for a few key scripts responsible
### for your system security, self-monitoring and self-healing.
###
### Gradually it grew into its current incarnation, so at the moment BOA Skynet
### auto-updates do these things for you, while you sleep:
###
### * Daily version/release check and notification
### * Hourly update for all meta-installers and related tools
### * Hourly check for D7 core vulnerability and patching if detected
### * Hourly update for key BOA tools, monitors and self-healing agents
### * Hourly check if your DNS resolver works as expected and repair if not
###
### While it is a very convenient to have all this work done for you, and we
### believe that it should be still enabled by default, we should make it
### possible to opt-out from all those auto-updates, if you prefer that your
### BOA system never calls home, and whatever happens, is totally under
### your control.
###
### Now you can disable this convenient magic completely by adding the line:
###
### _SKYNET_MODE=OFF
###
_SKYNET_MODE=ON
###
### NOTE: the group of settings displayed below is never stored
### permanently in this config file, since they are intended to be used
### only when required/useful for some reason, and while can be added
### manually before running barracuda up-{stable|head} command,
### they will be either removed automatically to not affect
### normal upgrades, or ignored afterwards.
###
###
### You can force Nginx, PHP and/or DB server
### reinstall, even if there are no updates
### available, when set to YES.
###
_NGX_FORCE_REINSTALL=NO
_PHP_FORCE_REINSTALL=NO
_SQL_FORCE_REINSTALL=NO
_GIT_FORCE_REINSTALL=NO
###
### Use YES to force installing everything
### from sources again, even if there are
### no updates available.
###
_FULL_FORCE_REINSTALL=NO
###
### Use YES to run major system upgrade
### from Debian Squeeze to Debian Wheezy.
###
_SQUEEZE_TO_WHEEZY=NO
###
### Use YES to run major system upgrade
### from Debian Lenny to Debian Squeeze.
###
_LENNY_TO_SQUEEZE=NO
###
### Use YES to run migration from Tomcat 6
### to Jetty 7 with Apache Solr 1.4.1
### See also docs/SOLR.txt
###
_TOMCAT_TO_JETTY=YES
###
### Octopus version BOA-2.4.1
###
### Configuration stored in the /root/.${_USER}.octopus.cnf file.
### This example is for public install mode - see docs/INSTALL.txt
###
### NOTE: the group of settings displayed below
### will *override* all listed here settings in the Octopus script.
###
_USER="o1" #-------------------- Aegir Instance system account name
_MY_EMAIL="brian@mydomain.com" #---------- Aegir Instance owner e-mail
_PLATFORMS_LIST=NONE #----------- Platforms to install - see docs/PLATFORMS.txt
_AUTOPILOT=YES #----------------- Allows to skip all Yes/No questions when YES
_HM_ONLY=NO #------------------- Allows to upgrade Aegir only (deprecated)
_DEBUG_MODE=NO #---------------- Allows to enable Drush debugging when YES
_MY_OWNIP= #-------------------- Allows to specify web server IP if not default
_FORCE_GIT_MIRROR="" #---------- Allows to use different mirror (deprecated)
_THIS_DB_HOST=localhost #------- DB host depends on Barracuda setting (FQDN)
_DNS_SETUP_TEST=NO #----------- Allows to skip DNS testing when NO
_HOT_SAUCE=NO #----------------- Forces new platforms tree on install when YES
_USE_CURRENT=YES #-------------- Forces new platforms tree on upgrade when NO
_DEL_OLD_EMPTY_PLATFORMS="0" #-- Delete empty platforms if verified > X-days-ago
_DEL_OLD_BACKUPS=0 #------------ Delete Aegir/b-migrate backups if > X-days-ago
_DEL_OLD_TMP=0 #---------------- Delete sites temp files if > X-days-ago
_LOCAL_NETWORK_IP= #------------ Web server IP if in localhost mode - auto-conf
_PHP_FPM_VERSION=5.5 #---------- PHP-FPM used by Satellite Instance: 5.{3,4,5,6}
_PHP_CLI_VERSION=5.5 #---------- PHP-CLI used by Satellite Instance: 5.{3,4,5,6}
_PHP_FPM_WORKERS=AUTO #--------- Allows to override AUTO with a valid integer
_PHP_FPM_TIMEOUT=AUTO #--------- Allows to override default 180 when 60-180
_PHP_FPM_DENY="" #-------------- Modify the disable_functions list per instance
_STRONG_PASSWORDS=NO #---------- Configurable length: 8-128, YES (32), NO (8)
_SQL_CONVERT=NO #--------------- DB conversion when innodb (or YES), or myisam
_RESERVED_RAM=0 #--------------- Allows to reserve RAM (in MB) for non-BOA apps
###
### NOTE: the group of settings displayed below will be *overridden*
### by config files stored in the /data/disk/o1/log/ directory,
### but only on upgrade.
###
_DOMAIN="o1.vagrant.vd" #---------- URL of the Aegir control panel
_CLIENT_EMAIL= #---------------- Create client user if different than _MY_EMAIL
_CLIENT_OPTION="SSD" #---------- Currently not used
_CLIENT_SUBSCR="Y" #------------ Currently not used
_CLIENT_CORES="8" #------------- Currently not used
###
### Octopus version BOA-2.4.1
###
###
### HINT: Check also control files docs in: docs/ctrl/system.ctrl
###
###
### Extra, special purpose control files are listed below.
###
### NOTE: the group of control files listed below are intended to be used
### by the instance owner to *overwrite* some settings stored in the
### /root/.${_USER}.octopus.cnf file without system admin (root) assistance.
###
###
### /data/disk/${_USER}/static/control/fpm.info
###
### This file, if exists and contains supported and installed PHP version
### will be used by running every minute /var/xdrago/manage_ltd_users.sh
### maintenance script to switch PHP-FPM version for this Octopus instance,
### if different than defined in the /root/.${_USER}.octopus.cnf file, in the
### _PHP_FPM_VERSION variable. It will also overwrite _PHP_FPM_VERSION value
### there to avoid doing it over and over again every 5 minutes.
###
### IMPORTANT: If used, it will switch PHP-FPM for all D7 *and* D6 sites hosted
### on the instance, but it will not affect any D5 site, if still hosted.
###
### Supported values which can be written in this file:
###
### 5.6
### 5.5
### 5.4
### 5.3
###
### There must be only one line and one value in this control file.
### Otherwise it will be ignored.
###
###
### /data/disk/${_USER}/static/control/cli.info
###
### This file, if exists and contains supported and installed PHP version
### will be used by running every minute /var/xdrago/manage_ltd_users.sh
### maintenance script to switch PHP-CLI version for this Octopus instance,
### if different than defined in the /root/.${_USER}.octopus.cnf file, in the
### _PHP_CLI_VERSION variable. It will also overwrite _PHP_CLI_VERSION value
### there to avoid doing it over and over again every 5 minutes.
###
### Note that it is not guaranteed that current Aegir version included in BOA
### will work with any PHP version newer than 5.3, hence the ability to switch
### CLI and FPM versions separately.
###
### Supported values which can be written in this file:
###
### 5.6
### 5.5
### 5.4
### 5.3
###
### There must be only one line and one value in this control file.
### Otherwise it will be ignored.
###
###
### /data/disk/${_USER}/static/control/platforms.info
###
### This file, if exists and contains a list of symbols used to define supported
### platforms, allows to control/override the value of _PLATFORMS_LIST variable
### normally defined in the /root/.${_USER}.octopus.cnf file, which can't be
### modified by the Aegir instance owner with no system root access.
###
### IMPORTANT: If used, it will replace/override the value defined on initial
### instance install and all previous upgrades. It takes effect on every future
### Octopus instance upgrade, which means that you will miss all newly added
### distributions, if they will not be listed also in this control file.
###
### Supported values which can be written in this file, listed in a single line
### or one per line:
###
### D8B ----------- Drupal 8-beta
### D8D ----------- Drupal 8-dev
### D7P D7S D7D --- Drupal 7 prod/stage/dev
### D6P D6S D6D --- Pressflow 6 p/s/d
### AGV ----------- aGov
### CME ----------- Commerce v.2
### CS7 ----------- Commons 7
### DCE ----------- Commerce v.1
### DCS ----------- Commons 6
### ERP ----------- ERPAL
### FSR ----------- Feature Server
### GDR ----------- Guardr
### OA7 ----------- OpenAtrium D7
### OAD ----------- OpenAid
### OAY ----------- OpenAcademy
### OBG ----------- OpenBlog
### OCH ----------- OpenChurch 1
### CH2 ----------- OpenChurch 2
### ODS ----------- OpenDeals
### OOH ----------- OpenOutreach
### OPC ----------- OpenPublic
### OSR ----------- OpenScholar
### PPY ----------- Panopoly
### RER ----------- Recruiter
### RST ----------- Restaurant
### UC7 ----------- Ubercart D7
### UCT ----------- Ubercart D6
###
### You can also use special keyword 'ALL' instead of any other symbols to have
### all available platforms installed, including newly added in all future BOA
### system releases, but excluding Drupal 8 platforms, which can be installed
### only if respective keywords are explicitly listed and Octopus instance PHP
### version is already set to 5.4 or newer - both for CLI and FPM.
###
### Examples:
###
### ALL
### ALL D8B
### D7P D6P OAM MNS OOH RST
###
and the following is what gets returned by ifconfig in the guest:
root@packer-debian-7:/home/vagrant# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:5c:84:04
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe5c:8404/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:306 errors:0 dropped:0 overruns:0 frame:0
TX packets:217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:27714 (27.0 KiB) TX bytes:22848 (22.3 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:0a:fc:e6
inet addr:172.16.0.69 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::a00:27ff:fe0a:fce6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:964 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:226540 (221.2 KiB) TX bytes:578 (578.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
the eth1 device is the IP which I have pointed to via dnsmasq on my local machine.
also is there a recommended installation command to use when you have prepopulated .cnf files on the host?
I don't think we can use local install here and have the websites accessible directly from the host..
Apple also expressly recommend against using .local so I don't think we can work with that when using VM on OS X https://support.apple.com/en-us/HT203136
Brian, have you eventually managed to get up and running with BOA Vagrant?
Really interested in this area to replicate production-like environment on localhost. Do you have some more tips on installation or maby come up with wiki entry on this topic?
Here are some tips for Vagrant installation after so many tests. Attaching a Vagrantfile also. Some minor additional lines on the Vagrantfile came up after problems that I cannot remember (eg this: config.vm.guest = :debian
).
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
config.vm.box = "wheezy64"
config.vm.box_url = "https://dl.dropboxusercontent.com/s/xymcvez85i29lym/vagrant-debian-wheezy64.box"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
config.vm.box_check_update = true
config.vbguest.auto_update = true
# Set guest OS
config.vm.guest = :debian
# Config ssh settings
# Password = pass@local
config.ssh.username = "root"
config.ssh.password = 'MY_PASWWORD'
config.ssh.insert_key = true
config.ssh.private_key_path = "~/.ssh/id_rsa"
config.ssh.forward_agent = true
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3306
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# Local_host_ip: 10.0.2.2
config.vm.network "private_network", ip: "192.168.44.42"
# Create a public network, which generally matched to bridged network.
# config.vm.network "public_network"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant.
config.vm.provider "virtualbox" do |vb|
# vb.gui = true
vb.memory = "2048"
end
end
If you can convert this into wiki, it would be great. We don't use Vagrant nor any local installs, because basically, we are server-side folks.
OK, will make a pull request asap.
Here is a Wiki page https://github.com/omega8cc/boa/wiki/Local-BOA-with-Vagrant. You can close the issue.
Thank you!
@theodorosploumis: thanks for the wiki, it's awesome and great help.
Important. SSH user must be root! If you use default user vagrant you may have errors because BOA does not allow other users to access folders such as /tmp. These folders are used when you run vagrant up. Also, notice that the default password vagrant for root will change after BOA install.
Had issue with this requirement. It seems that every base box is using vagrant:vagrant and disabling root login. Do we need to create our own base box to meet this requirement for logging as root?
We've almost finished creating a vagrant box for BOA, and will be making it public once done.
@theodorosploumis:
@BrianGilbert: Great. So, I understand you creating BOX with BOA included already, or just best practices with provisioning latest BOA? Any sneek peek maby available? :)
@Pls If the problem is the root password then ssh into the box once as vagrant user and add manually a password for root. Afterwards run the vagrant up
again as root and use this password. I will change the Wiki.
Also, I would suggest using the https://github.com/tbfisher/vagrant-boa vagrant project which does the provisioning automatically.
@theodorosploumis Thanks, updated wiki really helps. Will test it out and report back if everything's cool, thanks again!
@Pls We haven't yet decided if we will be releasing it as a box with BOA preinstalled or as the scripts to build it yourself. we have it working quite well already but we're just working on improving the file sharing to host aspect of it.
@BrianGilbert Gotcha, looking forward in testing it. Thanks for your effort, can't wait.
@BrianGilbert Do you have any update? Would love to test it out and give feedback.
After setting up a wildcard DNS entry pointing to the IP of my vagrant instance and confirming it resolved both locally and within the VM received the following error during installation of the guest, is there a way to circumvent this? (I had disabled DNS check in both Barracuda and Octopus cnf files