*** dmsimard5 has joined #ara | 00:54 | |
*** sshnaidm has quit IRC | 01:02 | |
*** harlowja has quit IRC | 01:02 | |
*** dmsimard has quit IRC | 01:02 | |
*** dmsimard5 is now known as dmsimars | 01:03 | |
*** dmsimars is now known as dmsimard | 01:03 | |
*** irclogbot_3 has quit IRC | 01:05 | |
*** irclogbot_2 has joined #ara | 01:05 | |
*** sshnaidm has joined #ara | 01:08 | |
*** harlowja has joined #ara | 01:08 | |
*** gvincent has quit IRC | 05:35 | |
*** gvincent has joined #ara | 06:53 | |
*** gvincent has quit IRC | 07:04 | |
*** gvincent has joined #ara | 07:05 | |
*** gvincent has quit IRC | 07:50 | |
*** gvincent has joined #ara | 12:21 | |
*** herald85 has joined #ara | 12:59 | |
*** vincent- has joined #ara | 13:17 | |
vincent- | One question. Does ara record the run when running "ansible-playbook" in check mode? | 13:18 |
---|---|---|
*** herald85 has quit IRC | 13:19 | |
dmsimard | vincent-: yes but they aren't differentiated from normal runs from a UI perspective (yet) | 13:48 |
dmsimard | You can find the "check" variable as true or false under the playbook parameters | 13:48 |
*** herald85 has joined #ara | 13:49 | |
vincent- | dmsimard, I have run the playbook without check. It doesn't matter :-) | 13:54 |
vincent- | I have worse problems than that. For instance, even if I have installed "ara-plugins" and "ara-clients", when I do "python -m ara.plugins" it tells me the ara module does not exist. | 13:55 |
dmsimard | ara-plugins no longer exists since alpha3, everything was melded back into ara | 13:59 |
dmsimard | pip install ara --pre will get you alpha4 with clients and plugins included | 14:00 |
dmsimard | What instructions did you follow for your installation ? I might have forgotten to update docs or something. | 14:01 |
vincent- | Uhm..., I think it's better if I explain what I'm trying to achieve so you can help me better. I want to setup on a separate host the ara API server. On a separate host, a database. And on all the laptops I use for running Ansible, I want to install the ara plugins so it will record the playbook run and will pass it to the API server. | 14:03 |
vincent- | I don't want a bloated installation of ara that contains everything in my laptops, for instance. | 14:04 |
dmsimard | Bloated is a big word, 1.0 is already far more lightweight than 0.x :p | 14:05 |
dmsimard | Making the plugins available as a standalone package is on the todo list but it's not available yet. | 14:06 |
vincent- | dmsimard, well, what I mean is, it feels wrong to me that if I don't want to have the server on my client machines (the ones that run ansible-playbook), by installing ara it also installs the server and all its dependencies. | 14:06 |
dmsimard | Yes, I realize that and that's why ara-plugins was created in the first place | 14:08 |
vincent- | In an organization, many people can run ansible-playbook from their laptops. They all should be storing the logs in the same server, so, why installing the server on each laptop? The server should be centralised. | 14:09 |
vincent- | From what I read in the last post, ara-plugins, ara-clients and ara-server were put together into the same git repo. | 14:10 |
dmsimard | The server /can/ be centralized | 14:10 |
vincent- | But I didn't understood you couldn't install those three elements separately. | 14:11 |
dmsimard | They'll be made available separately, it's a matter of time | 14:11 |
vincent- | That will be nice :-) | 14:12 |
dmsimard | But back to bloat | 14:12 |
dmsimard | Create two separate venvs | 14:12 |
dmsimard | Install ara 0.x in the first and 1.0 in the second | 14:12 |
dmsimard | Watch the amount of deps that 0.x pulls in | 14:13 |
dmsimard | Compared to 1.0 | 14:13 |
dmsimard | I understand that you don't want to install the server code if you don't need it but the overhead is minimal and the server code simply won't be used or running | 14:14 |
dmsimard | IMO not a blocker to get started and you can move to the standalone packages when they're available | 14:14 |
vincent- | I'll try it :-) | 14:15 |
dmsimard | You can use the role to deploy and configure your API server: https://ara.readthedocs.io/en/feature-1.0/ansible-role-ara-api.html | 14:16 |
dmsimard | It's in the git source for now but it'll be available in other ways eventually | 14:17 |
dmsimard | https://github.com/ansible-community/ara/tree/feature/1.0/roles | 14:17 |
vincent- | dmsimard, is ara-1.0 python3 only? Or only for the api server? | 14:18 |
dmsimard | This is what was used to deploy https://api.demo.recordsansible.org/api/v1/ with https://github.com/ansible-community/ara-infra/blob/master/playbooks/live-demo.yaml | 14:18 |
dmsimard | Python3 for the API. The plugins and clients are not tested for py2 right now but I'd like for them to work with both. | 14:20 |
dmsimard | btw, back to your database server you mentioned | 14:21 |
dmsimard | It's a good idea to minimize the latency wherever you can since even a 10ms roundtrip adds up quickly over the course of a playbook | 14:21 |
dmsimard | I'd keep the database running on the same machine as the API server unless you're running at a scale that justifies something else | 14:23 |
vincent- | One problem I'm facing is, the latest ara available with "pip install" is 1.0.0a4. When I try to install that with python2, it depends on a version of Django that is not available for python2. | 14:24 |
vincent- | dmsimard> I'd keep the database running on the same machine as the API server unless you're running at a scale that justifies something else | 14:24 |
vincent- | I'll keep that advise in mind. Thanks. | 14:24 |
dmsimard | The API parts (django/django-rest-framework) will never be available under py2. py2 is EOL next year and it was not realistic or sustainable to write new code to work with py2. | 14:26 |
dmsimard | However, the API server is an excellent candidate for living in a container | 14:27 |
dmsimard | So you could technically run a container with a py3 interpreter (fedora, ubuntu, etc) on a py2 host. | 14:28 |
vincent- | I was planing to have the API server on a container with Python3. | 14:28 |
dmsimard | I'd love to see that when you get it working, good opportunity to land it in the project :) | 14:29 |
vincent- | However, my client machines run ansible-playbook in a container which only has python2, so if I want to install ara in there, it fails with that error. | 14:29 |
vincent- | dmsimard> It's a good idea to minimize the latency wherever you can since even a 10ms roundtrip adds up quickly over the course of a playbook | 14:40 |
vincent- | Regarding that... | 14:40 |
vincent- | I was expecting the ansible-playbook command run until the end, and after that, ara picks up the log and does an HTTP request to the API server. | 14:41 |
vincent- | Doesn't work in that way? | 14:41 |
dmsimard | vincent-: I don't have a good solution for py2 right now | 14:41 |
dmsimard | No, not at all | 14:41 |
dmsimard | ara doesn't have access to the log | 14:42 |
vincent- | So it makes HTTP requests as the ansible-playbook outputs stuff? | 14:42 |
dmsimard | It doesn't use the log or the output, it is a native callback plugin | 14:43 |
dmsimard | https://ara.readthedocs.io/en/feature-1.0/architecture.html | 14:43 |
vincent- | I see... | 14:45 |
vincent- | From that doc, "The API server validates and serializes the data before storing it the configured database backend". Is up to the API server to decide the amount of data it serializes before storing it into the DB. | 14:47 |
vincent- | Perhaps it could send data to the DB based not only on the amount of data, but also on a time basis, so you don't flood the DB server with too many requests? | 14:48 |
vincent- | That latency of 10ms you told me before scared me. And having the DB server in the same container where the API server runs is not something I would do. | 14:49 |
*** gvincent has quit IRC | 14:50 | |
*** herald85 has quit IRC | 15:19 | |
*** sshnaidm has quit IRC | 15:27 | |
*** sshnaidm has joined #ara | 15:38 | |
dmsimard | vincent-: not necessarily in the same container but on the same host | 16:17 |
dmsimard | The data is sent in real time by callback hooks | 16:17 |
dmsimard | Asynchronous processing would need to rely on something like a message bus which is not out of the question but is not a priority at this time | 16:18 |
vincent- | Yes, I understand. | 16:18 |
vincent- | It would be a nice feature. Accumulate the data in the API server and send it in batches to the DB. | 16:19 |
*** etienne has quit IRC | 17:01 | |
*** sshnaidm is now known as sshnaidm|off | 18:32 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!