[openstack-dev] [TripleO] TripleO/Ansible PTG session

James Slagle james.slagle at gmail.com
Thu Sep 21 19:37:56 UTC 2017

On Thu, Sep 21, 2017 at 11:53 AM, Jiří Stránský <jistr at redhat.com> wrote:
> On 21.9.2017 18:04, Marios Andreou wrote:
>> On Thu, Sep 21, 2017 at 3:53 PM, Jiří Stránský <jistr at redhat.com> wrote:
>>> On 21.9.2017 12:31, Giulio Fidente wrote:
>>>> On 09/20/2017 07:36 PM, James Slagle wrote:
>>>>> On Tue, Sep 19, 2017 at 8:37 AM, Giulio Fidente <gfidente at redhat.com>
>>>>> wrote:
>>>>>> On 09/18/2017 05:37 PM, James Slagle wrote:
>>>>>>> - The entire sequence and flow is driven via Mistral on the
>>>>>>> Undercloud
>>>>>>> by default. This preserves the API layer and provides a clean
>>>>>>> reusable
>>>>>>> interface for the CLI and GUI.
>>>>>> I think it's worth saying that we want to move the deployment steps
>>>>>> out
>>>>>> of heat and in ansible, not in mistral so that mistral will run the
>>>>>> workflow only once and let ansible go through the steps
>>>>>> I think having the steps in mistral would be a nice option to be able
>>>>>> to
>>>>>> rerun easily a particular deployment step from the GUI, versus having
>>>>>> them in ansible which is instead a better option for CLI users ... but
>>>>>> it looks like having them in ansible is the only option which permits
>>>>>> us
>>>>>> to reuse the same code to deploy an undercloud because having the
>>>>>> steps
>>>>>> in mistral would require the undercloud installation itself to depend
>>>>>> on
>>>>>> mistral which we don't want to
>>>>>> James, Dan, please comment on the above if I am wrong
>>>>> That's correct. We don't want to require Mistral to install the
>>>>> Undercloud. However, I don't think that necessarily means it has to be
>>>>> a single call to ansible-playbook. We could have multiple invocations
>>>>> of ansible-playbook. Both Mistral and CLI code for installing the
>>>>> undercloud could handle that easily.
>>>>> You wouldn't be able to interleave an external playbook among the
>>>>> deploy steps however. That would have to be done under a single call
>>>>> to ansible-playbook (at least how that is written now). We could
>>>>> however have hooks that could serve as integration points to call
>>>>> external playbooks after each step.
>>>> the benefits of driving the steps from mistral are that then we could
>>>> also interleave the deployment steps and we won't need the
>>>> ansible-playbook hook for the "external" services:
>>>> 1) collect the ansible tasks *and* the workflow_tasks (per step) from
>>>> heat
>>>> 2) launch the stepN deployment workflow (ansible-playbook)
>>>> 3) execute any workflow_task defined for stepN (like ceph-ansible
>>>> playbook)
>>>> 4) repeat 2 and 3 for stepN+1
>>>> I think this would also provide a nice interface for the UI ... but then
>>>> we'd need mistral to be able to deploy the undercloud
>> Why not launch the _single_  deploy_steps playbook (so we have
>> when/conditionals with step numbers), passing in the step you want to have
>> executed (we can pass this in as a parameter to the mistral workflow and
>> pass through to the ansible-playbook invocation?), otherwise execute all
>> the steps.
> +1 that's the sort of thing i meant by "it's not baked in by default but we
> could make it so". We could even give it a list of steps like
> `tripleo_run_steps: [4, 5, 6]`.

Agreed. We can parameterize as needed so that it could be driven via
Mistral for finer grained control for the API/UI or by a single
ansible-playbook directly.

-- James Slagle

More information about the OpenStack-dev mailing list