diff --git a/ansible/roles/common/meta/main.yml b/ansible/roles/common/meta/main.yml index 38dc562..1d0b2ab 100644 --- a/ansible/roles/common/meta/main.yml +++ b/ansible/roles/common/meta/main.yml @@ -6,4 +6,7 @@ dependencies: - php - xdebug - composer + - phpmyadmin - varnish + - nodejs + diff --git a/ansible/roles/nodejs/tasks/grunt-install.yml b/ansible/roles/nodejs/tasks/grunt-install.yml new file mode 100644 index 0000000..b529016 --- /dev/null +++ b/ansible/roles/nodejs/tasks/grunt-install.yml @@ -0,0 +1,4 @@ +--- +- name: Grunt | Grunt CLI install + shell: npm install -g grunt-cli + sudo: yes diff --git a/ansible/roles/nodejs/tasks/gulp-install.yml b/ansible/roles/nodejs/tasks/gulp-install.yml new file mode 100644 index 0000000..d82ecfa --- /dev/null +++ b/ansible/roles/nodejs/tasks/gulp-install.yml @@ -0,0 +1,4 @@ +--- +- name: Gulp | Gulp CLI install + shell: npm install -g gulp-cli + sudo: yes \ No newline at end of file diff --git a/ansible/roles/nodejs/tasks/install.yml b/ansible/roles/nodejs/tasks/install.yml new file mode 100644 index 0000000..fd03e0a --- /dev/null +++ b/ansible/roles/nodejs/tasks/install.yml @@ -0,0 +1,54 @@ +--- +- name: Ensure Ubuntu Distro is Supported + get_url: + url='https://deb.nodesource.com/node/dists/{{ ansible_distribution_release }}/Release' + dest=/dev/null + register: distrosupported + +- name: Remove Old Chris Lea PPA + apt_repository: + repo='ppa:chris-lea/node.js' + state=absent + when: distrosupported|success + +- name: Remove Old Chris Lea Sources + sudo: yes + file: + path='/etc/apt/sources.list.d/chris-lea-node_js-{{ ansible_distribution_release }}.list' + state=absent + when: distrosupported|success + +- name: Install for apt-transport-https + sudo: yes + apt: pkg=apt-transport-https state=latest update_cache=true + register: apttransporthttps + when: distrosupported|success + +- name: Add Nodesource Keys + sudo: yes + apt_key: + url=https://deb.nodesource.com/gpgkey/nodesource.gpg.key + state=present + when: apttransporthttps|success + +- name: Add Nodesource Apt Sources List Deb + sudo: yes + apt_repository: + repo='deb https://deb.nodesource.com/node {{ ansible_distribution_release }} main' + state=present + when: apttransporthttps|success + +- name: Add Nodesource Apt Sources List Deb Src + sudo: yes + apt_repository: + repo='deb-src https://deb.nodesource.com/node {{ ansible_distribution_release }} main' + state=present + when: apttransporthttps|success + +- name: Install NodeJS + sudo: yes + apt: pkg=nodejs state=latest update_cache=true + register: nodejsinstalled + +- include: taskrunner.yml + when: nodejsinstalled|success diff --git a/ansible/roles/nodejs/tasks/main.yml b/ansible/roles/nodejs/tasks/main.yml new file mode 100644 index 0000000..773cf39 --- /dev/null +++ b/ansible/roles/nodejs/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- include: install.yml + when: nodejs.install diff --git a/ansible/roles/nodejs/tasks/taskrunner.yml b/ansible/roles/nodejs/tasks/taskrunner.yml new file mode 100644 index 0000000..4690b18 --- /dev/null +++ b/ansible/roles/nodejs/tasks/taskrunner.yml @@ -0,0 +1,6 @@ +--- +- include: grunt-install.yml + when: nodejs.grunt + +- include: gulp-install.yml + when: nodejs.gulp diff --git a/ansible/roles/php/tasks/install.yml b/ansible/roles/php/tasks/install.yml index 58e2e45..c29a915 100644 --- a/ansible/roles/php/tasks/install.yml +++ b/ansible/roles/php/tasks/install.yml @@ -21,5 +21,10 @@ notify: - restart apache +- name: Enable mcrypt + sudo: yes + shell: php5enmod mcrypt + when: "'php5-mcrypt' in php.packages" + - include: configure.yml - include: pecl.yml diff --git a/ansible/roles/phpmyadmin/README.md b/ansible/roles/phpmyadmin/README.md new file mode 100755 index 0000000..5098513 --- /dev/null +++ b/ansible/roles/phpmyadmin/README.md @@ -0,0 +1,21 @@ +PHPMYADMIN +================ + +##Instructions +If you want to use phpmyadmin on your vagrant box, you need to setup a hostname for your application. +You also need to choose a hostname for your phpmyadmin installation in that vagrant box. +And you need to add that both those hostname in your hosts file (/etc/hosts). + +You now only need to add those variable into your playbook.yml or +into a specific vars file depending on your liking. + +```yaml +phpmyadmin: + - + user: mysql user + pass: mysql password + hostname: phpmyadmin hostname + pma_dbname: phpmyadmin database name +``` + +Enjoy diff --git a/ansible/roles/phpmyadmin/defaults/main.yml b/ansible/roles/phpmyadmin/defaults/main.yml new file mode 100644 index 0000000..9670a51 --- /dev/null +++ b/ansible/roles/phpmyadmin/defaults/main.yml @@ -0,0 +1,6 @@ +--- + +phpmyadmin: + dbname: phpmyadmin + dbuser: phpmyadmin + dbpass: phpmyadmin diff --git a/ansible/roles/phpmyadmin/meta/main.yml b/ansible/roles/phpmyadmin/meta/main.yml new file mode 100644 index 0000000..5817bee --- /dev/null +++ b/ansible/roles/phpmyadmin/meta/main.yml @@ -0,0 +1,7 @@ +--- +allow_duplicates: no + +dependencies: + - { role: apache } + - { role: php } + - { role: mysql } diff --git a/ansible/roles/phpmyadmin/tasks/install.yml b/ansible/roles/phpmyadmin/tasks/install.yml new file mode 100755 index 0000000..957512c --- /dev/null +++ b/ansible/roles/phpmyadmin/tasks/install.yml @@ -0,0 +1,52 @@ +--- +- name: debconf for pma dbconfig-install + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/dbconfig-install' value='true' vtype='boolean' + +# MySQL-Datenbankname für phpmyadmin: +# phpmyadmin phpmyadmin/db/dbname string phpmyadmin +- name: debconf for pma dbname + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/db/dbname' value='{{phpmyadmin.dbname}}' vtype='string' + +# MySQL-Benutzername für phpmyadmin: +# phpmyadmin phpmyadmin/db/app-user string phpmyadmin +- name: debconf for pma app-user + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/db/app-user' value='{{phpmyadmin.dbuser}}' vtype='string' + +- name: debconf for pma app-pass + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/mysql/app-pass' value='{{phpmyadmin.dbpass}}' vtype='password' + + +# Verbindungsmethode an die MySQL-Datenbank von phpmyadmin: +# Choices: Unix-Socket, TCP/IP +# phpmyadmin phpmyadmin/mysql/method select unix socket + +- name: debconf for pma app-password-confirm + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/app-password-confirm' value='{{phpmyadmin.dbpass}}' vtype='password' + +# Name des administrativen Datenbank-Benutzers: +#phpmyadmin phpmyadmin/mysql/admin-user string root + +- name: debconf for pma admin-pass + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/mysql/admin-pass' value='{{mysql.root_password}}' vtype='password' + +# Webserver, die automatisch konfiguriert werden sollen: +# Choices: apache2, lighttpd +# phpmyadmin phpmyadmin/reconfigure-webserver multiselect +- name: debconf for pma reconfigure-webserver + sudo: yes + debconf: name=phpmyadmin question='phpmyadmin/reconfigure-webserver' value='apache2' vtype='multiselect' + +- name: install pma + sudo: yes + apt: pkg=phpmyadmin state=present + notify: + - restart apache + +# - name: configure site +# file: path=/var/www/html/phpmyadmin src=/usr/share/phpmyadmin state=link diff --git a/ansible/roles/phpmyadmin/tasks/main.yml b/ansible/roles/phpmyadmin/tasks/main.yml new file mode 100755 index 0000000..591f778 --- /dev/null +++ b/ansible/roles/phpmyadmin/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- include: install.yml + when: phpmyadmin.install diff --git a/ansible/roles/xdebug/templates/xdebug.ini b/ansible/roles/xdebug/templates/xdebug.ini index 27f6cbb..3f903d4 100644 --- a/ansible/roles/xdebug/templates/xdebug.ini +++ b/ansible/roles/xdebug/templates/xdebug.ini @@ -1,3 +1,4 @@ zend_extension=xdebug.so xdebug.remote_enable=On xdebug.remote_host={{ php.xdebug.host|default(xdebug_ip_address.stdout, true) }} +xdebug.remote_connect_back=1 diff --git a/ansible/vars/default.yml b/ansible/vars/default.yml index f169f87..3d91542 100644 --- a/ansible/vars/default.yml +++ b/ansible/vars/default.yml @@ -63,3 +63,12 @@ varnish: default_config: source: ~ target: /etc/varnish/default.vcl +phpmyadmin: + install: false + dbname: phpmyadmin + dbuser: phpmyadmin + dbpass: phpmyadmin +nodejs: + install: false + grunt: false + gulp: false