Skip to content

Instantly share code, notes, and snippets.

@benjaminrau
Last active July 17, 2024 13:08
Show Gist options
  • Select an option

  • Save benjaminrau/fd6ceeea01ea272ce7c0 to your computer and use it in GitHub Desktop.

Select an option

Save benjaminrau/fd6ceeea01ea272ce7c0 to your computer and use it in GitHub Desktop.
Setup virtual machine and typo3 with one command
Benjamin-Rau-iMac:~ benjaminrau$ git clone https://github.com/benjaminrau/devbox && cd devbox && ./up
Cloning into 'devbox'...
remote: Counting objects: 117, done.
remote: Compressing objects: 100% (85/85), done.
remote: Total 117 (delta 19), reused 39 (delta 2)
Receiving objects: 100% (117/117), 32.22 KiB | 0 bytes/s, done.
Resolving deltas: 100% (19/19), done.
Checking connectivity... done
Bringing machine 't3devbox' up with 'virtualbox' provider...
==> t3devbox: Importing base box 'vagrant-debian-wheezy64'...
==> t3devbox: Matching MAC address for NAT networking...
==> t3devbox: Setting the name of the VM: t3devbox
==> t3devbox: Clearing any previously set network interfaces...
==> t3devbox: Preparing network interfaces based on configuration...
t3devbox: Adapter 1: nat
t3devbox: Adapter 2: hostonly
==> t3devbox: Forwarding ports...
t3devbox: 22 => 2222 (adapter 1)
==> t3devbox: Running 'pre-boot' VM customizations...
==> t3devbox: Booting VM...
==> t3devbox: Waiting for machine to boot. This may take a few minutes...
t3devbox: SSH address: 127.0.0.1:2222
t3devbox: SSH username: vagrant
t3devbox: SSH auth method: private key
t3devbox: Warning: Connection timeout. Retrying...
==> t3devbox: Machine booted and ready!
==> t3devbox: Checking for guest additions in VM...
==> t3devbox: Setting hostname...
==> t3devbox: Configuring and enabling network interfaces...
==> t3devbox: Mounting shared folders...
t3devbox: /data => /Users/benjaminrau/devbox/data
t3devbox: /vagrant => /Users/benjaminrau/devbox
==> t3devbox: Running provisioner: shell...
t3devbox: Running: /var/folders/1j/hl00m4fj3dz1kb_8nd6jx_940000gn/T/vagrant-shell20140925-69559-nvk7u0.sh
==> t3devbox: stdin: is not a tty
==> t3devbox: Cloning into '/data/web'...
==> t3devbox: Running provisioner: ansible...
PLAY [t3devbox] ***************************************************************
GATHERING FACTS ***************************************************************
ok: [192.168.56.11]
TASK: [common | copy files] ***************************************************
changed: [192.168.56.11] => (item={'dest': '/root/.bashrc', 'path': '.bashrc', 'group': 'root', 'mode': 600, 'owner': 'root'})
changed: [192.168.56.11] => (item={'dest': '/home/vagrant/.bashrc', 'path': '.bashrc', 'group': 'vagrant', 'mode': 600, 'owner': 'vagrant'})
TASK: [common | add/check wheezy stable] **************************************
changed: [192.168.56.11]
TASK: [common | add/check wheezy updates] *************************************
changed: [192.168.56.11]
TASK: [common | add/check wheezy security updates] ****************************
changed: [192.168.56.11]
TASK: [common | add/check wheezy backports] ***********************************
changed: [192.168.56.11]
TASK: [common | Update repository] ********************************************
changed: [192.168.56.11]
TASK: [common | Upgrade repository] *******************************************
changed: [192.168.56.11]
TASK: [common | install syspackages] ******************************************
changed: [192.168.56.11] => (item=molly-guard,logrotate,vim,curl,git,git-ftp,strace,sysstat,build-essential,wget,bash-completion,ntp,ntpdate,unzip,bzip2,zip,mcrypt,sendmail,sendmail-bin,python,python-pip,python-dev,python-software-properties,python-mysqldb,nodejs,nodejs-dev,nodejs-legacy,samba,samba-common,smbclient)
TASK: [user | add sudoadmin group] ********************************************
changed: [192.168.56.11] => (item=sudoadmin)
changed: [192.168.56.11] => (item=sudoers)
TASK: [user | add wwwdev and home /home/wwwdev] *******************************
changed: [192.168.56.11]
TASK: [user | create home directory /home/wwwdev] *****************************
ok: [192.168.56.11]
TASK: [user | create ssh directory /home/wwwdev] ******************************
changed: [192.168.56.11]
TASK: [user | create htdocs directory] ****************************************
changed: [192.168.56.11]
TASK: [user | copy static user files] *****************************************
changed: [192.168.56.11] => (item={'dest': '/.bashrc', 'path': '/.bashrc', 'mode': 644})
changed: [192.168.56.11] => (item={'dest': '/.gitignore_global', 'path': '/.gitignore_global', 'mode': 644})
changed: [192.168.56.11] => (item={'dest': '/.vimrc', 'path': '/.vimrc', 'mode': 644})
changed: [192.168.56.11] => (item={'dest': '/.ssh/ssh_config', 'path': '/ssh_config', 'mode': 600})
TASK: [user | create dynamic user files from template] ************************
changed: [192.168.56.11] => (item={'dest': '/.ssh/authorized_keys', 'path': '/authorized_keys', 'mode': 600})
changed: [192.168.56.11] => (item={'dest': '/.gitconfig', 'path': '/.gitconfig', 'mode': 644})
TASK: [user | copy smb.conf] **************************************************
changed: [192.168.56.11]
TASK: [user | restart samba] **************************************************
changed: [192.168.56.11]
TASK: [user | copy sudoers file for safety] ***********************************
changed: [192.168.56.11]
TASK: [user | create sudoers file backup] *************************************
changed: [192.168.56.11]
TASK: [user | make sure we can sudo as admin group] ***************************
changed: [192.168.56.11]
TASK: [user | also make sure ssh-agent works via sudo] ************************
changed: [192.168.56.11]
TASK: [user | final sudoers file check] ***************************************
changed: [192.168.56.11]
TASK: [nginx | install packages] **********************************************
changed: [192.168.56.11] => (item=nginx,nginx-full,nginx-common)
TASK: [nginx | create phpmyadmin config from template] ************************
changed: [192.168.56.11] => (item={'dest': 'phpmyadmin.conf', 'path': 'phpmyadmin.conf', 'mode': 644})
TASK: [nginx | create vhost config from template] *****************************
changed: [192.168.56.11] => (item={'dest': u'dev.local.conf', 'path': u'vhost.conf', 'mode': 644})
TASK: [nginx | start server] **************************************************
changed: [192.168.56.11]
TASK: [php | install common] **************************************************
changed: [192.168.56.11] => (item=php5-fpm,php5-common,php5-cli)
TASK: [php | install additional packages] *************************************
changed: [192.168.56.11] => (item=php-apc,php5-curl,php5-gd,php5-imagick,php5-mcrypt,php5-memcache,php5-memcached,php5-mysql,php5-xdebug,php-pear,php5-intl,php5-dev,phpunit,phpmyadmin)
TASK: [php | copy configs] ****************************************************
changed: [192.168.56.11] => (item={'dest': '/etc/php5/conf.d/custom.php.ini', 'path': '/custom.php.ini', 'mode': 644})
changed: [192.168.56.11] => (item={'dest': '/etc/php5/conf.d/custom.xdebug.ini', 'path': '/custom.xdebug.ini', 'mode': 644})
changed: [192.168.56.11] => (item={'dest': '/etc/php5/fpm/pool.d/dev.local.conf', 'path': '/dev.local.conf', 'mode': 644})
TASK: [php | create slowlog dir] **********************************************
changed: [192.168.56.11]
TASK: [php | start php-fpm server] ********************************************
ok: [192.168.56.11]
TASK: [db | add/check repository] *********************************************
changed: [192.168.56.11]
TASK: [db | add keyserver] ****************************************************
changed: [192.168.56.11]
TASK: [db | update repositories] **********************************************
changed: [192.168.56.11]
TASK: [db | install packages] *************************************************
changed: [192.168.56.11] => (item=mariadb-server,mariadb-client,mariadb-common)
TASK: [db | start server] *****************************************************
ok: [192.168.56.11]
TASK: [db | configure the root credentials] ***********************************
changed: [192.168.56.11]
TASK: [tools | copy scripts] **************************************************
changed: [192.168.56.11] => (item={'dest': 'base_config', 'path': 'base_config', 'mode': 655})
changed: [192.168.56.11] => (item={'dest': 'base_functions', 'path': 'base_functions', 'mode': 655})
changed: [192.168.56.11] => (item={'dest': 'git_branch', 'path': 'git_branch', 'mode': 655})
changed: [192.168.56.11] => (item={'dest': 'git_merge', 'path': 'git_merge', 'mode': 655})
changed: [192.168.56.11] => (item={'dest': 'git_pull', 'path': 'git_pull', 'mode': 655})
changed: [192.168.56.11] => (item={'dest': 'ws_restart', 'path': 'ws_restart', 'mode': 655})
changed: [192.168.56.11] => (item={'dest': 'link_configs', 'path': 'link_configs', 'mode': 655})
TASK: [tools | add php tools] *************************************************
changed: [192.168.56.11] => (item={'url': 'https://phar.phpunit.de/phpunit.phar', 'dest': 'phpunit', 'mode': '555'})
changed: [192.168.56.11] => (item={'url': 'https://phar.phpunit.de/phploc.phar', 'dest': 'phploc', 'mode': '555'})
changed: [192.168.56.11] => (item={'url': 'https://phar.phpunit.de/phpcpd.phar', 'dest': 'phpcpd', 'mode': '555'})
changed: [192.168.56.11] => (item={'url': 'https://getcomposer.org/composer.phar', 'dest': 'composer', 'mode': '555'})
changed: [192.168.56.11] => (item={'url': 'https://phar.phpunit.de/phpdcd.phar', 'dest': 'phpcd', 'mode': '555'})
changed: [192.168.56.11] => (item={'url': 'https://github.com/Halleck45/PhpMetrics/raw/master/build/phpmetrics.phar', 'dest': 'metrics', 'mode': '555'})
TASK: [ansible | install pip] *************************************************
changed: [192.168.56.11]
TASK: [ansible | install ansible with pip] ************************************
changed: [192.168.56.11]
TASK: [bootstrap-webproject | clone TYPO3 6.2 to ../TYPO3.CMS] ****************
changed: [192.168.56.11]
TASK: [bootstrap-webproject | create typo3 configuration matching the local env] ***
changed: [192.168.56.11] => (item={'dest': 'LocalConfiguration.php', 'path': 'LocalConfiguration.php', 'mode': 644})
changed: [192.168.56.11] => (item={'dest': 'AdditionalConfiguration.php', 'path': 'AdditionalConfiguration.php', 'mode': 644})
TASK: [bootstrap-webproject | copy latest typo3 htaccess file to the document root] ***
changed: [192.168.56.11]
TASK: [bootstrap-webproject | create symlinks for TYPO3 sources] **************
changed: [192.168.56.11]
TASK: [bootstrap-webproject | file path=/data/web/typo3 src=typo3_src/typo3 state=link force=yes] ***
changed: [192.168.56.11]
TASK: [bootstrap-webproject | file path=/data/web/index.php src=typo3_src/index.php state=link force=yes] ***
changed: [192.168.56.11]
TASK: [bootstrap-webproject | create a new database with name dev_typo3] ******
changed: [192.168.56.11]
TASK: [bootstrap-webproject | replace variables in mysql dump and copy to server] ***
changed: [192.168.56.11] => (item={'dest': 'latest_dump.sql', 'path': 'latest_dump.sql', 'mode': 644})
TASK: [bootstrap-webproject | import latest database dump] ********************
changed: [192.168.56.11]
TASK: [bootstrap-webproject | clone FluidTYPO3 repositories to typo3conf/ext] ***
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/flux.git', 'dest': 'flux', 'version': 'development'})
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/fluidcontent.git', 'dest': 'fluidcontent', 'version': 'development'})
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/fluidpages.git', 'dest': 'fluidpages', 'version': 'development'})
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/vhs.git', 'dest': 'vhs', 'version': 'development'})
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/builder.git', 'dest': 'builder', 'version': 'development'})
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/fluidcontent_core.git', 'dest': 'fluidcontent_core', 'version': 'development'})
changed: [192.168.56.11] => (item={'repo': 'https://github.com/FluidTYPO3/view.git', 'dest': 'view', 'version': 'master'})
TASK: [bootstrap-webproject | install FluidTYPO3 extensions] ******************
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install flux', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install fluidcontent', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install fluidpages', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install vhs', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install builder', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install fluidcontent_core', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
changed: [192.168.56.11] => (item={'arguments': 'extbase extension:install view', 'script': '/data/web/typo3/cli_dispatch.phpsh'})
TASK: [bootstrap-webproject | clone more typo3 extensions to typo3conf/ext] ***
changed: [192.168.56.11] => (item={'version': 'master', 'extensionname': 'realurl'})
changed: [192.168.56.11] => (item={'version': 'master', 'extensionname': 'crawler'})
changed: [192.168.56.11] => (item={'version': 'master', 'extensionname': 'linkvalidator'})
TASK: [bootstrap-webproject | install typo3 extensions] ***********************
changed: [192.168.56.11] => (item={'extensionname': 'realurl'})
changed: [192.168.56.11] => (item={'extensionname': 'crawler'})
changed: [192.168.56.11] => (item={'extensionname': 'linkvalidator'})
changed: [192.168.56.11] => (item={'extensionname': 'indexed_search'})
changed: [192.168.56.11] => (item={'extensionname': 'scheduler'})
PLAY RECAP ********************************************************************
192.168.56.11 : ok=55 changed=51 unreachable=0 failed=0
Benjamin-Rau-iMac:devbox benjaminrau$ curl http://dev.local/typo3/index.php | grep TYPO3
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1587 0 1587 0 0 291 0 --:--:-- 0:00:05 --:--:-- 343
<img src="typo3/sysext/t3skin/images/login/typo3logo-white-greyback.gif" alt="TYPO3 logo" />
<p class="t3-error-text">Browser Error: Your browser version looks incompatible with this TYPO3 version!<p>More information regarding this error might be available <a href="http://typo3.org/go/exception/CMS/1294587023" target="_blank">online</a>.</p></p>
TYPO3 CMS is an open source content management system. To maintain the quality of the system and to improve it, please help us by donating.
TYPO3 CMS. Copyright &copy; 1998-2014 Kasper Skårhøj. Extensions are copyright of their respective owners. Go to http://typo3.org/ for details.
TYPO3 CMS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Obstructing the appearance of this notice is prohibited by law.
Benjamin-Rau-iMac:devbox benjaminrau$ ssh dev
The authenticity of host 'dev.local (192.168.56.11)' can't be established.
RSA key fingerprint is 13:d2:38:06:6b:4d:ae:e8:98:d3:48:9e:a2:0f:05:b7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dev.local' (RSA) to the list of known hosts.
Linux vagrant-debian-wheezy64 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u1 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
wwwdev@t3devbox:~$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment