{"id":2396,"date":"2020-02-24T10:29:37","date_gmt":"2020-02-24T09:29:37","guid":{"rendered":"https:\/\/www.bluemind.net\/?p=2396"},"modified":"2026-08-28T14:43:55","modified_gmt":"2026-08-28T12:43:55","slug":"industrialising-the-installation-of-bluemind-with-ansible","status":"publish","type":"post","link":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/","title":{"rendered":"Industrialising the installation of BlueMind with Ansible"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">Installing a BlueMind platform is typically straightforward, involving few steps once the architecture is defined. In some cases, however, installation needs to be industrialised in order to be played several times. This may be needed, for example, for hosts or clients with a large number of users and several platforms.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ansible is an automation engine designed to deal with such situations. This article describes how to deploy BlueMind using Ansible, although you may use any other tools such as Saltstack, Puppet or Chef.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">What\u2019s Ansible?<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ansible is an automation tool that facilitates application and system deployment. It saves having to write scripts or custom code to deploy or update an application.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ansible\u2019s strength is that you don\u2019t need a deployment agent on the target server as all installation and configuration instructions are run by the SSH agent, which is widespread on Linux servers.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Specifically, Ansible can automate three types of tasks:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><em><strong>Provisioning:<\/strong><\/em>\u00a0setting up the servers your infrastructure requires.<\/li>\r\n<li><em><strong>Configuration:<\/strong><\/em>\u00a0changing the configuration of an application, an operating system or a device, starting and stopping services, installing or updating applications, implementing a security strategy, or performing a wide array of other configuration tasks.<\/li>\r\n<li><em><strong>Application deployment:<\/strong><\/em>\u00a0facilitating development by automating the deployment of the applications developed in-house on your production systems.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This article describes how BlueMind can use Ansible to automate repetitive administration tasks. To find out more about using Ansible, we recommend Cloud Academy\u2019s <a href=\"https:\/\/cloudacademy.com\/learning-paths\/introduction-ansible-23\/\" target=\"_blank\" rel=\"noreferrer noopener\">Introduction to Ansible<\/a>.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Ansible and BlueMind<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This article is not designed to tell you about Ansible but to show you how we use it in our deployment methods.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><em><strong>Respect of deployment rules<\/strong><\/em><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">There are several ways of deploying an application with Ansible. The method we are showing here uses an inventory file which contains the BlueMind server(s) to be installed, BlueMind-specific roles made available by our teams through git repositories and example playbooks to order operations.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><em><strong>Installation harmonisation<\/strong><\/em><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Using Ansible has many benefits. It will save you time if you\u2019re deploying multiple BlueMind instances for different clients. You can for example harmonise configurations according to clients and uses to industrialise deployment, thereby limiting inconsistencies between BlueMind instances.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Similarly, in another context, you can use Ansible to deploy your development, qualification, preproduction and production environments in order to ensure identical configurations. This will help maximise the success of your deployment or update projects.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Below, we will look at how to deploy a simple BlueMind server capable of hosting hundreds of users. Then we will see how you can deploy an instance of BlueMind made up of two BlueMind servers, one core server and one back-end data server which will contain user data.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Finally, we will look at evolution prospects and how existing roles can be a starting point for the deployment of a dedicated <a href=\"https:\/\/www.elastic.co\/fr\/elasticsearch\" target=\"_blank\" rel=\"noreferrer noopener\">elasticsearch\u00a0<\/a>server or a <a href=\"https:\/\/forge.bluemind.net\/confluence\/display\/DA\/.Installation+d%27un+serveur+Edge+%3A+Nginx+et+Postfix+vBM-4.0\" target=\"_blank\" rel=\"noreferrer noopener\">bm-edge<\/a> server. You may also consider a disaster recovery plan to rebuild a server in case of loss \u2013 using backups.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Environment:<strong>\u00a0<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Prerequisite: an Ansible server installed. In our case, we\u2019re not using the latest version but roles are compatible:\u00a0<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>root@nmc-Ansible:~# Ansible --version <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Ansible 2.7.5 <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0config file = \/etc\/Ansible\/Ansible.cfg <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><code>\u00a0\u00a0<\/code><code>configured module search path = [u'\/root\/.Ansible\/plugins\/modules', u'\/usr\/share\/Ansible\/plugins\/modules'] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0Ansible python module location = \/usr\/lib\/python2.7\/dist-packages\/Ansible <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0executable location = \/usr\/bin\/Ansible <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0python version = 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] <\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Installing a BlueMind server:\u00a0<\/h2>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Get the file u500_requirements.yml\u00a0<a href=\"https:\/\/forge.bluemind.net\/stash\/projects\/BMAN\/repos\/ansible_sample\/browse\/ansible_galaxy\/u500_requirements.yml\" target=\"_blank\" rel=\"noreferrer noopener\">here <\/a><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Ansible-galaxy install -r u500_requirements.yml <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>- extracting bluemind_requirements to \/etc\/Ansible\/roles\/bluemind_requirements <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>- bluemind_requirements (master) was installed successfully <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>- extracting bluemind_single_server to \/etc\/Ansible\/roles\/bluemind_single_server <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>- bluemind_single_server (master) was installed successfully <\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The Ansible-galaxy command is used to download all the roles available on git. Please not that newer versions may become available in the short or medium term.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Create the playbook:\u00a0<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>root@nmc-Ansible:\/etc\/Ansible# cat playbooks\/bm\/bluemind_single_server.yml <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>--- <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>- name: Configuring BlueMind requirements <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0hosts: all <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0become: yes <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0become_method: su <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0roles: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"><code>\u00a0\u00a0\u00a0\u00a0<\/code><code>- bluemind_requirements <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0- bluemind_single_server <\/code><\/pre>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Create your inventory file. Here we are using a yml file, available in \/etc\/Ansible\/inventory\u00a0<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">cat inventory\/bluemind_single_server.yml<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>bluemind_single_server: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0hosts: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0nmc-core.blue-mind.loc: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_host: 192.168.0.15 <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_become_password: \u00ab SET_ROOT_PASSWORD_HERE\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o UserKnownHostsFile=\/dev\/null' <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_user: bluemind <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0vars: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0sw_password: \"admin\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0external_url: \"mail.blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0subscription_contact: \"admin@blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0local_works_directory: \"\/usr\/local\/bluemind\/\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0email_domain: \"blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0subscription_file: \"\/usr\/local\/bluemind\/subscribe.bmz\" <\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">A few explanatory notes:\u00a0<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The following global variables are required:\u00a0<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The <strong>public server address<\/strong>, vars.external_url<\/li>\r\n<li><strong>The contact name<\/strong> for who will receive subscription notifications vars.subscription_contact<\/li>\r\n<li><strong>Email_domain<\/strong>\u00a0which represents the default domain you want to create.<\/li>\r\n<li><strong>Sw_password\u00a0is the password needed for the <\/strong>\/setup and access to the tick console \u2013 if you choose to install it.<\/li>\r\n<li><strong>Local_works_directory<\/strong>\u00a0is storage location for the information needed to run Ansible roles. You might want to create a client file, for instance.<\/li>\r\n<li><strong>subscription_file<\/strong>\u00a0is the location of the subscription file, required for installation by Ansible.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Start the installation:\u00a0<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Ansible-playbook -l bluemind_single_server playbooks\/bm\/bluemind_single_server.yml <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY [Configuring BlueMind requirements] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [Gathering Facts] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements :\u00a0 Load Operating System : Debian 9] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] =&gt; (item=\/etc\/Ansible\/roles\/bluemind_requirements\/vars\/debian_family.yml) <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>included: \/etc\/Ansible\/roles\/bluemind_requirements\/tasks\/debian.yml for nmc-core.blue-mind.loc <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : assert] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] =&gt; { <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\"changed\": false, <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\"msg\": \"All assertions passed\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>} <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : set \/etc\/hostname] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Ensure en_US.UTF-8 locale exists] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Set LC_ALL] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Set LANG] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Install apt Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Update] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Upgrade apt packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Install your subscribe file] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc -&gt; localhost] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Copy BlueMind repository file into the server] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Adding BlueMind Public Key] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Configure BM repository priority] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : apt_repository] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Update repositories] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_single_server : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_single_server : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>included: \/etc\/Ansible\/roles\/bluemind_single_server\/tasks\/debian.yml for nmc-core.blue-mind.loc <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_single_server : Install BlueMind Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_single_server : Install BlueMind] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY RECAP <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>nmc-core.blue-mind.loc\u00a0\u00a0\u00a0\u00a0 : ok=19\u00a0\u00a0 changed=12\u00a0\u00a0 unreachable=0\u00a0\u00a0\u00a0 failed=0 <\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Once the installation is complete, you just need to configure your server.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The bluemind_requirements role is used to push the subscription on the BlueMind server(s). The subscription is retrieved from the subscription file bmz which must be entered\u00a0in the variables of the \u201cbluemind_single_server\u201d group.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The bluemind_requirements role is also used to check that the system configuration meets BlueMind\u2019s expectations.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">As of BlueMind 4.1, BlueMind updates can be run from command line. This means that all you\u2019ll need to do is run a playbook for BlueMind packages to be updated and for the \/setup to play without having to connect to the web interface.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">And don\u2019t forget that this type of instruction needs to be run in a screen\/tmux or similar tool.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Updating the BlueMind server:\u00a0<\/h2>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>root@nmc-Ansible:\/etc\/Ansible# Ansible-playbook -l bluemind_single_server playbooks\/bm\/bluemind_upgrade.yml <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY [Configuring BlueMind requirements] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [Gathering Facts] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>included: \/etc\/Ansible\/roles\/bluemind_upgrade\/tasks\/debian.yml for nmc-core.blue-mind.loc <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : apt update cache] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : Verify aptitude package] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : apt update &amp; clean] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : apt dist-upgrade] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_upgrade : shell] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY RECAP <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>nmc-core.blue-mind.loc\u00a0\u00a0\u00a0\u00a0 : ok=7\u00a0\u00a0\u00a0 changed=3\u00a0\u00a0\u00a0 unreachable=0\u00a0\u00a0\u00a0 failed=0\u00a0\u00a0 <\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>Installing a shard + a core:\u00a0<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In this second example, we are installing a BlueMind core server and deporting email, contacts, calendars, etc. data to a dedicated server (called shard in BlueMind speak).<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">As above, get the u1000_requirements.yml file <a href=\"https:\/\/doc.bluemind.net\/release\/4.8\/en\/guide_de_l_administrateur\/administration_avancee\/installation_d_un_serveur_edge_nginx_et_postfix\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ansible-galaxy install -r u1000_requirements.yml<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The variables are:\u00a0<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>--- <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>bluemind: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0hosts: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0nmc-core.blue-mind.loc: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_host: 192.168.0.15 <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_become_password: \"SET_ROOT_PASSWORD_HERE\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o UserKnownHostsFile=\/dev\/null' <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_user: bluemind <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0nmc-data.blue-mind.loc: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_host: 192.168.0.16 <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_become_password: \"SET_ROOT_PASSWORD_HERE\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o UserKnownHostsFile=\/dev\/null' <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ansible_user: bluemind <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0vars: <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0sw_password: \"admin\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0external_url: \"mail.blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0tick_module: true <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0synchro_ldap_module: false <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0subscription_contact: \"admin@blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0synchro_ad_module: false <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0local_works_directory: \"\/usr\/local\/bluemind\/\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0email_domain: \"blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0subscription_file: \"\/usr\/local\/bluemind\/subscribe.bmz\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0shardip: \"192.168.0.16\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0export_ldap_module: false <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0core_server_fqdn: \"nmc-core.blue-mind.loc\" <\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In this case, the possibility to install tick, LDAP or AP synchronisation or LDAP export modules is embedded in the bluemind-core.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">New modules may become available in the future \u2013 e.g. to deploy bm-mapi or corporate signatures.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>root@nmc-Ansible:\/etc\/Ansible# Ansible-playbook -l bluemind playbooks\/bm\/bluemind_core_cyrus.yml <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY [Configuring BlueMind requirements] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [Gathering Facts] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements :\u00a0 Load Operating System : Debian 9] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-data.blue-mind.loc] =&gt; (item=\/etc\/Ansible\/roles\/bluemind_requirements\/vars\/debian_family.yml) <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] =&gt; (item=\/etc\/Ansible\/roles\/bluemind_requirements\/vars\/debian_family.yml) <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>included: \/etc\/Ansible\/roles\/bluemind_requirements\/tasks\/debian.yml for nmc-data.blue-mind.loc, nmc-core.blue-mind.loc <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : assert] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-data.blue-mind.loc] =&gt; { <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\"changed\": false, <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\"msg\": \"All assertions passed\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>} <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] =&gt; { <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\"changed\": false, <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\u00a0\u00a0\u00a0\u00a0\"msg\": \"All assertions passed\" <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>} <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : set \/etc\/hostname] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Ensure en_US.UTF-8 locale exists] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc- core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Set LC_ALL] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Set LANG] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Install apt Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Update] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Upgrade apt packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Install your subscribe file] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc -&gt; localhost] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc -&gt; localhost] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Copy BlueMind repository file into the server] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Adding BlueMind Public Key] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>********************* <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Configure BM repository priority] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : apt_repository] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_requirements : Update repositories] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY [Install BlueMind Data] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [Gathering Facts] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_cyrus : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_cyrus : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>included: \/etc\/Ansible\/roles\/bluemind_cyrus\/tasks\/debian.yml for nmc-data.blue-mind.loc <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_cyrus : Install BlueMind Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_cyrus : Install Tick Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-data.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY [Install BlueMind Core] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [Gathering Facts] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>********************* <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ok: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : include_tasks] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>included: \/etc\/Ansible\/roles\/bluemind_core\/tasks\/debian.yml for nmc-core.blue-mind.loc <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install BlueMind Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install Tick Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install Export LDAP Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install Synhcro LDAP Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install Synchro AD Packages] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install and configure Core Service with a shard server] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Install and configure Core Service] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>skipping: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Fetch mcast.id] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Fetch bm-core.tok] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Disabled bm-cyrus-imapd if shard is defined] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Disabled bm-lmtpd if shard is defined] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>TASK [bluemind_core : Configure Tick] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>RUNNING HANDLER [bluemind_core : restart NGINX] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>********************* <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>RUNNING HANDLER [bluemind_core : stop bm-cyrus-imapd] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>RUNNING HANDLER [bluemind_core : stop bm-lmtpd] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>changed: [nmc-core.blue-mind.loc] <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PLAY RECAP <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>*********************<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>nmc-core.blue-mind.loc\u00a0\u00a0\u00a0\u00a0 : ok=29\u00a0\u00a0 changed=18\u00a0\u00a0 unreachable=0\u00a0\u00a0\u00a0 failed=0\u00a0\u00a0\u00a0 <\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>nmc-data.blue-mind.loc\u00a0\u00a0\u00a0\u00a0 : ok=20\u00a0\u00a0 changed=12\u00a0\u00a0 unreachable=0\u00a0\u00a0\u00a0 failed=0\u00a0\u00a0\u00a0 <\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Finally, deploying a BlueMind instance made up of a core server, a back-end data server and a dedicated elasticsearch server is possible as shown for 3,000 users\u00a0.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>In conclusion\u2026<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">One of the key challenges of installing a new email system is being able to perform continuous integration and deployment with no downtime. This typically requires a lot of coding work involving multiple tools and therefore time and resources.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ansible is a powerful open-source automation tool that reduces the use of time and resources to a minimum while ensuring the service\u2019s availability. On installations with a large number of users, BlueMind, with Ansible, helps reduce downtime, minimises human error and saves a huge amount of time.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Multiple additional roles are in the pipeline, including the possibility to run scheduled tasks, configure the BlueMind system or corporate signatures, LDAP syncing, etc.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">While we are using Ansible in this article, other tools such as Saltstack, Puppet or Chef are equally valid. BlueMind can help you adapt these Ansible examples to other deployment tools.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Find out about our <a href=\"https:\/\/www.bluemind.net\/en\/devops-and-continuous-integration-a-look-at-blueminds-quality-approach-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps and continuous integration approach here.<\/a><\/p>\r\n<p><img decoding=\"async\" width=\"150\" height=\"150\" class=\"wp-image-2390\" src=\"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/manu-150x150.png\" alt=\"\" srcset=\"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/manu-150x150.png 150w, https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/manu-298x300.png 298w, https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/manu-300x300.png 300w, https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/manu.png 500w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><em>By <\/em><a href=\"https:\/\/www.linkedin.com\/in\/manuel-guilley-b383b14b\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Manuel Guilley<\/em><\/a><em>, BlueMind Integrator.<\/em><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Installing a BlueMind platform is typically straightforward, involving few steps once the architecture is defined. In some cases, however, installation needs to be industrialised in order to be played several times. This may be needed, for example, for hosts or clients with a large number of users and several platforms.\u00a0 Ansible is an automation engine [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":2371,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"page_builder":"","footnotes":""},"categories":[7,183],"tags":[],"class_list":["post-2396","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-integration-si-en","category-technical"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Industrialising the installation of BlueMind with Ansible - BlueMind<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Industrialising the installation of BlueMind with Ansible - BlueMind\" \/>\n<meta property=\"og:description\" content=\"Installing a BlueMind platform is typically straightforward, involving few steps once the architecture is defined. In some cases, however, installation needs to be industrialised in order to be played several times. This may be needed, for example, for hosts or clients with a large number of users and several platforms.\u00a0 Ansible is an automation engine [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/\" \/>\n<meta property=\"og:site_name\" content=\"BlueMind\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-24T09:29:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-28T12:43:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/cover-ansible-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"403\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Anthony Prades\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anthony Prades\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/\"},\"author\":{\"name\":\"Anthony Prades\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#\\\/schema\\\/person\\\/f58457572ac8246bd7f493b4dbcb0948\"},\"headline\":\"Industrialising the installation of BlueMind with Ansible\",\"datePublished\":\"2020-02-24T09:29:37+00:00\",\"dateModified\":\"2026-08-28T12:43:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/\"},\"wordCount\":1086,\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bluemind.net\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/cover-ansible-2.png\",\"articleSection\":[\"Integration\",\"Technical\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/\",\"url\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/\",\"name\":\"Industrialising the installation of BlueMind with Ansible - BlueMind\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bluemind.net\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/cover-ansible-2.png\",\"datePublished\":\"2020-02-24T09:29:37+00:00\",\"dateModified\":\"2026-08-28T12:43:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bluemind.net\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/cover-ansible-2.png\",\"contentUrl\":\"https:\\\/\\\/www.bluemind.net\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/cover-ansible-2.png\",\"width\":768,\"height\":403},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/industrialising-the-installation-of-bluemind-with-ansible\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/homepage\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Industrialising the installation of BlueMind with Ansible\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/\",\"name\":\"BlueMind\",\"description\":\"Collaborative messaging\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#organization\",\"name\":\"BlueMind\",\"url\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.bluemind.net\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/logobm_300.png\",\"contentUrl\":\"https:\\\/\\\/www.bluemind.net\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/logobm_300.png\",\"width\":300,\"height\":100,\"caption\":\"BlueMind\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.bluemind.net\\\/en\\\/#\\\/schema\\\/person\\\/f58457572ac8246bd7f493b4dbcb0948\",\"name\":\"Anthony Prades\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"caption\":\"Anthony Prades\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Industrialising the installation of BlueMind with Ansible - BlueMind","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/","og_locale":"en_US","og_type":"article","og_title":"Industrialising the installation of BlueMind with Ansible - BlueMind","og_description":"Installing a BlueMind platform is typically straightforward, involving few steps once the architecture is defined. In some cases, however, installation needs to be industrialised in order to be played several times. This may be needed, for example, for hosts or clients with a large number of users and several platforms.\u00a0 Ansible is an automation engine [&hellip;]","og_url":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/","og_site_name":"BlueMind","article_published_time":"2020-02-24T09:29:37+00:00","article_modified_time":"2026-08-28T12:43:55+00:00","og_image":[{"width":768,"height":403,"url":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/cover-ansible-2.png","type":"image\/png"}],"author":"Anthony Prades","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Anthony Prades","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#article","isPartOf":{"@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/"},"author":{"name":"Anthony Prades","@id":"https:\/\/www.bluemind.net\/en\/#\/schema\/person\/f58457572ac8246bd7f493b4dbcb0948"},"headline":"Industrialising the installation of BlueMind with Ansible","datePublished":"2020-02-24T09:29:37+00:00","dateModified":"2026-08-28T12:43:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/"},"wordCount":1086,"publisher":{"@id":"https:\/\/www.bluemind.net\/en\/#organization"},"image":{"@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/cover-ansible-2.png","articleSection":["Integration","Technical"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/","url":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/","name":"Industrialising the installation of BlueMind with Ansible - BlueMind","isPartOf":{"@id":"https:\/\/www.bluemind.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#primaryimage"},"image":{"@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/cover-ansible-2.png","datePublished":"2020-02-24T09:29:37+00:00","dateModified":"2026-08-28T12:43:55+00:00","breadcrumb":{"@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#primaryimage","url":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/cover-ansible-2.png","contentUrl":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2020\/02\/cover-ansible-2.png","width":768,"height":403},{"@type":"BreadcrumbList","@id":"https:\/\/www.bluemind.net\/en\/industrialising-the-installation-of-bluemind-with-ansible\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bluemind.net\/en\/homepage\/"},{"@type":"ListItem","position":2,"name":"Industrialising the installation of BlueMind with Ansible"}]},{"@type":"WebSite","@id":"https:\/\/www.bluemind.net\/en\/#website","url":"https:\/\/www.bluemind.net\/en\/","name":"BlueMind","description":"Collaborative messaging","publisher":{"@id":"https:\/\/www.bluemind.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bluemind.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bluemind.net\/en\/#organization","name":"BlueMind","url":"https:\/\/www.bluemind.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bluemind.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2017\/06\/logobm_300.png","contentUrl":"https:\/\/www.bluemind.net\/wp-content\/uploads\/2017\/06\/logobm_300.png","width":300,"height":100,"caption":"BlueMind"},"image":{"@id":"https:\/\/www.bluemind.net\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.bluemind.net\/en\/#\/schema\/person\/f58457572ac8246bd7f493b4dbcb0948","name":"Anthony Prades","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Anthony Prades"}}]}},"_links":{"self":[{"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/posts\/2396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/comments?post=2396"}],"version-history":[{"count":2,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/posts\/2396\/revisions"}],"predecessor-version":[{"id":16988,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/posts\/2396\/revisions\/16988"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/media\/2371"}],"wp:attachment":[{"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/media?parent=2396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/categories?post=2396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bluemind.net\/en\/wp-json\/wp\/v2\/tags?post=2396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}