Created
May 11, 2017 19:56
-
-
Save arkag/5c251a0c1f99da1fa2833f37e6f30c90 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ERROR | |
| (item={u'owner': u'www-data', u'path': u'/var/www/mediawiki-1.28.0/extensions/SphinxSearch/skins/images', u'group': u'www-data'}) => { | |
| "failed": true, | |
| "invocation": { | |
| "module_args": { | |
| "backup": null, | |
| "content": null, | |
| "delimiter": null, | |
| "diff_peek": null, | |
| "directory_mode": null, | |
| "follow": true, | |
| "force": false, | |
| "group": "www-data", | |
| "mode": null, | |
| "original_basename": null, | |
| "owner": "www-data", | |
| "path": "/var/www/mediawiki-1.28.0/extensions/SphinxSearch/skins/images", | |
| "recurse": false, | |
| "regexp": null, | |
| "remote_src": null, | |
| "selevel": null, | |
| "serole": null, | |
| "setype": null, | |
| "seuser": null, | |
| "src": null, | |
| "state": "directory", | |
| "unsafe_writes": null, | |
| "validate": null | |
| }, | |
| "module_name": "file" | |
| }, | |
| "item": { | |
| "group": "www-data", | |
| "owner": "www-data", | |
| "path": "/var/www/mediawiki-1.28.0/extensions/SphinxSearch/skins/images" | |
| }, | |
| "msg": "There was an issue creating /var/www/mediawiki-1.28.0/extensions/SphinxSearch as requested: [Errno 17] File exists: '/var/www/mediawiki-1.28.0/extensions/SphinxSearch'", | |
| "path": "/var/www/mediawiki-1.28.0/extensions/SphinxSearch/skins/images", | |
| "state": "absent" | |
| } | |
| PLAYBOOK | |
| --- | |
| # only required for xenial for Math extension; once newer LTS, remove this and just install the "texvc" package from official repos | |
| - name: add required ppas | |
| apt_repository: | |
| repo: ppa:legoktm/mediawiki-lts | |
| - name: install packages needed | |
| apt: | |
| name: "{{ item }}" | |
| update_cache: yes | |
| cache_valid_time: '{{ apt_cache_time }}' | |
| with_items: | |
| - git | |
| - graphviz | |
| - imagemagick | |
| - librsvg2-bin | |
| - mariadb-client | |
| - pandoc | |
| - sphinxsearch | |
| # required for Math module; this is a separate task because it "recommends" | |
| # extra packages we don't want, so setting "install_recommds: no" here | |
| - name: install texvc | |
| apt: | |
| name: texvc | |
| update_cache: yes | |
| cache_valid_time: '{{ apt_cache_time }}' | |
| install_recommends: no | |
| - name: Get mediawiki and extensions | |
| get_url: | |
| url: "{{ item.src }}" | |
| dest: "{{ item.dest }}" | |
| with_items: | |
| - { src: "https://releases.wikimedia.org/mediawiki/{{ mediawikiversion }}/mediawiki-{{ mediawikihotfix }}.tar.gz", dest: "/var/cache/mediawiki-{{ mediawikihotfix }}.tar.gz" } | |
| - { src: "https://extdist.wmflabs.org/dist/extensions/Math-{{ mediawiki_ext_version }}-1097ee7.tar.gz", dest: "/var/cache/math.tar.gz" } # active | |
| - { src: "http://pilotfiber.dl.sourceforge.net/project/grcatbr/grcatbr/grcatbr-1.7/xyCategoryBrowser-1.7.tar.gz", dest: "/var/cache/graphicalcategorybrowser.tar.gz" } # last update years ago, unlikely to be new versions | |
| - { src: "https://extdist.wmflabs.org/dist/extensions/CSS-REL1_26-c43a8c8.tar.gz", dest: "/var/cache/css.tar.gz" } # mostly localization changes | |
| - { src: "https://extdist.wmflabs.org/dist/extensions/LdapAuthentication-{{ mediawiki_ext_version }}-770c89e.tar.gz", dest: "/var/cache/ldap.tar.gz" } # bugfix changes | |
| - { src: "https://extdist.wmflabs.org/dist/extensions/Html2Wiki-{{ mediawiki_ext_version }}-a494d06.tar.gz", dest: "/var/cache/html2wiki.tar.gz" } # active changes | |
| - { src: "https://extdist.wmflabs.org/dist/extensions/{{ ext.sphinxsearch }}.tar.gz", dest: "{{ loc.sphinxsearch }}.tar.gz" } # implement sphinx search | |
| - { src: "http://sphinxsearch.com/files/sphinx-{{ sphinxsearch_version }}-release.tar.gz", dest: "/var/cache/sphinxbin.tar.gz" } # implement sphinx search | |
| - { src: "http://stabilitytech.com/downloads/HTML5video.tar", dest: "/var/cache/html5.tar" } | |
| - { src: "http://bootswatch.com/{{ bs_theme }}/variables.less", dest: "{{ www_root }}/{{ bs_theme }}-variables.less" } | |
| - { src: "http://bootswatch.com/{{ bs_theme }}/bootswatch.less", dest: "{{ www_root }}/{{ bs_theme }}-bootswatch.less" } | |
| - name: stat renamed directories | |
| stat: | |
| path: "/var/cache/{{ item.dest }}" | |
| register: hostvars[inventory_hostname]["renamed-" ~ item.src] | |
| with_items: | |
| - { src: "SphinxSearch", dest: "{{ ext.sphinxsearch }}" } | |
| - name: Extract mediawiki and extensions | |
| unarchive: | |
| src: "{{ item.src }}" | |
| dest: "{{ item.dest }}" | |
| owner: "{{ item.owner }}" | |
| group: "{{ item.group }}" | |
| remote_src: yes | |
| when: hostvars[inventory_hostname]["renamed-" ~ item.dir_name] is not defined | |
| with_items: | |
| - { dir_name: "", src: "/var/cache/mediawiki-{{ mediawikihotfix }}.tar.gz", dest: "/var/www", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/math.tar.gz", dest: "{{ extensions }}", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/graphicalcategorybrowser.tar.gz", dest: "{{ extensions }}", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/css.tar.gz", dest: "{{ extensions }}", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/ldap.tar.gz", dest: "{{ extensions }}", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/html2wiki.tar.gz", dest: "{{ extensions }}", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "SphinxSearch", src: "{{ loc.sphinxsearch }}.tar.gz", dest: "/var/cache", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/sphinxbin.tar.gz", dest: "/var/cache/", owner: "www-data", group: "{{ apache2_group }}" } | |
| - { dir_name: "", src: "/var/cache/html5.tar", dest: "{{ extensions }}", owner: "www-data", group: "{{ apache2_group }}" } | |
| - name: create symlinks | |
| file: | |
| src: "{{ item.src }}" | |
| dest: "{{ item.dest }}" | |
| state: link | |
| owner: "{{ item.owner }}" | |
| group: "{{ item.group }}" | |
| with_items: | |
| - { src: "/var/cache/SphinxSearch", dest: "{{ extensions }}/SphinxSearch", owner: www-data, group: "{{ apache2_group }}" } | |
| - { src: "/var/cache/sphinx-{{ sphinxsearch_version }}-release/api/sphinxapi.php", dest: "{{ extensions }}/SphinxSearch/sphinxapi.php", owner: www-data, group: "{{ apache2_group }}" } | |
| - name: rename directories if not already renamed | |
| command: "mv /var/cache/{{ item.src }} /var/cache/{{ item.dest }}" | |
| when: hostvars[inventory_hostname]["renamed-" ~ item.src] is not defined | |
| with_items: | |
| - { src: "SphinxSearch", dest: "{{ ext.sphinxsearch }}" } | |
| - name: Make directories | |
| file: | |
| follow: yes | |
| path: "{{ item.path }}" | |
| state: directory | |
| owner: "{{ item.owner }}" | |
| group: "{{ item.group }}" | |
| with_items: | |
| - { path: "{{ extensions }}/ApprovedRevs", owner: www-data, group: "{{ apache2_group }}" } | |
| - { path: "{{ extensions }}/SpecialUserScore", owner: www-data, group: "{{ apache2_group }}"} | |
| - { path: "{{ extensions }}/Widgets", owner: www-data, group: "{{ apache2_group }}"} | |
| - { path: "{{ extensions }}/NewArticleTemplates", owner: www-data, group: "{{ apache2_group }}"} | |
| - { path: "{{ extensions }}/SphinxSearch/skins/images", owner: www-data, group: "{{ apache2_group }}" } | |
| - { path: "{{ extensions }}/Presort", owner: www-data, group: "{{ apache2_group }}"} | |
| - { path: "{{ skins }}/common/images", owner: www-data, group: "{{ apache2_group }}"} | |
| - { path: "/var/data/sphinx", owner: root, group: root} | |
| - { path: "/var/log/sphinx", owner: root, group: root} | |
| - { path: "/etc/sphinxsearch", owner: root, group: root} | |
| # Note: I'm not using template here, because SphinxSearch.php changes with each update to the extension, | |
| # so updating the extension would be harder if we templated the file. | |
| - name: Create SphinxSearch Badge | |
| blockinfile: | |
| follow: yes | |
| dest: "{{ extensions }}/SphinxSearch/SphinxSearch.php" | |
| block: | | |
| $wgFooterIcons['poweredby']['sphinxsearch'] = array( | |
| 'src' => "$wgScriptPath/extensions/SphinxSearch/skins/images/Powered_by_sphinx.png", | |
| 'url' => 'http://www.mediawiki.org/wiki/Extension:SphinxSearch', | |
| 'alt' => 'Search Powered by Sphinx', | |
| ); | |
| - name: copy items | |
| copy: | |
| follow: yes | |
| src: "{{ item.src }}" | |
| dest: "{{ item.dest }}" | |
| owner: "{{ item.owner }}" | |
| group: "{{ item.group }}" | |
| with_items: | |
| - { src: Powered_by_sphinx.png, dest: "{{ extensions }}/SphinxSearch/skins/images/Powered_by_sphinx.png", owner: www-data, group: "{{ apache2_group }}" } | |
| - { src: xeslogo_white.png, dest: "{{ skins }}/common/images/xeslogo_white.png", owner: www-data, group: "{{ apache2_group }}" } | |
| - { src: favicon.ico, dest: "{{ www_root }}/favicon.ico", owner: www-data, group: "{{ apache2_group }}" } | |
| - name: Get extensions from repositories | |
| git: | |
| repo: "{{ item.src }}" | |
| dest: "{{ extensions }}/{{ item.dir }}" | |
| version: "{{ item.ver | default('HEAD') }}" | |
| force: "{{ item.force | default('no') }}" | |
| with_items: | |
| - { src: 'https://gerrit.wikimedia.org/r/p/mediawiki/extensions/ApprovedRevs.git', dir: 'ApprovedRevs', desc: 'ApprovedRevs Extension' } # active | |
| - { src: 'https://github.com/nicjansma/mediawiki-Extension-SpecialUserScore.git', dir: 'SpecialUserScore', ver: 'v2.1.1', desc: 'SpecialUserScore Extension' } # abandoned, unlikely to be new changes | |
| - { src: 'https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Widgets.git', dir: 'Widgets', desc: 'Widgets Extension' } # provides bugfixes | |
| - { src: 'https://github.com/mathiasertl/NewArticleTemplates.git', dir: 'NewArticleTemplates', desc: 'NewArticleTemplates Extension' } # active | |
| # if we don't specify x.y.z for the skin version, a future mediawiki upgrade may fail - see #6161 comment 43 | |
| - name: load bootstrap skin | |
| command: "{{ php_root }}/composer/bin/composer require mediawiki/chameleon-skin=1.5.0" | |
| args: | |
| chdir: "{{ www_root }}" | |
| become_user: www_data | |
| - name: change directory owner | |
| file: | |
| path: "{{ www_root }}" | |
| owner: www-data | |
| group: "{{ apache2_group }}" | |
| state: directory | |
| recurse: yes | |
| - name: template files | |
| template: | |
| src: "{{ item.src }}" | |
| dest: "{{ item.dest }}" | |
| owner: "{{ item.owner }}" | |
| group: "{{ item.group }}" | |
| with_items: | |
| - { src: 'LocalSettings.php.j2', dest: '{{ www_root }}/LocalSettings.php', owner: www-data, group: "{{ apache2_group }}" } | |
| - { src: 'Presort.php', dest: '{{ extensions }}/Presort/Presort.php', owner: www-data, group: "{{ apache2_group }}" } | |
| - { src: 'sphinx.conf.j2', dest: '/etc/sphinxsearch/sphinx.conf', owner: root, group: root } | |
| - { src: 'searchd.service.j2', dest: '/etc/systemd/system/searchd.service', owner: root, group: root } | |
| - block: | |
| - name: Copy database dump to server | |
| copy: | |
| src: "{{ db_dump_file }}" | |
| dest: "{{ db_tmp_file }}" | |
| changed_when: False | |
| - name: Load database dump | |
| mysql_db: | |
| login_user: "{{ mysql_rooted_user }}" | |
| login_password: "{{ mysql_rooted_password }}" | |
| name: "{{ db_name }}" | |
| state: import | |
| target: "{{ db_tmp_file }}" | |
| - name: Remove temporary database dump file | |
| file: | |
| path: "{{ db_tmp_file }}" | |
| state: absent | |
| changed_when: False | |
| when: db_dump_file != "" and local_mysql | |
| - name: update image hashes | |
| command: "/usr/bin/php {{ www_root }}/maintenance/populateImageSha1.php" | |
| become_user: www-data | |
| ignore_errors: yes | |
| - name: install vendor dependencies | |
| command: "{{ php_root }}/composer/bin/composer install" | |
| args: | |
| chdir: "{{ item }}" | |
| become_user: www-data | |
| with_items: | |
| - "{{ www_root }}" | |
| - "{{ www_root }}/extensions/Html2Wiki" | |
| - "{{ www_root }}/extensions/SyntaxHighlight_GeSHi" | |
| - name: run maintenance update | |
| command: "/usr/bin/php {{ www_root }}/maintenance/update.php" | |
| become_user: www-data | |
| - name: stop searchd | |
| systemd: | |
| name: searchd | |
| state: stopped | |
| enabled: yes | |
| daemon_reload: yes | |
| - name: run SphinxSearch Indexer | |
| command: "/usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all" | |
| become_user: root | |
| - name: start searchd | |
| systemd: | |
| name: searchd | |
| state: started | |
| enabled: yes | |
| daemon_reload: yes | |
| - name: create cron job for indexing | |
| cron: | |
| name: full sphinx search indexing | |
| day: "*" | |
| user: root | |
| job: "/usr/bin/indexer --quiet --config /etc/sphinxsearch/sphinx.conf wiki_main --rotate >/dev/null 2>&1; /usr/bin/indexer --quiet --config /etc/sphinxsearch/sphinx.conf wiki_incremental --rotate >/dev/null 2>&1" | |
| - name: create cron job for indexing | |
| cron: | |
| name: incremental sphinx search indexing | |
| minute: "*/30" | |
| user: root | |
| job: "/usr/bin/indexer --quiet --config /etc/sphinxsearch/sphinx.conf wiki_incremental --rotate >/dev/null 2>&1" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment