ara-slack | graeme.danielson: @dmsimard Thanks for confirming. We will go ahead with auth on nginx as there is potentially sensitive network info in there and need to keep the security team happy. | 00:13 |
---|---|---|
*** bcoca has quit IRC | 03:38 | |
*** gvincent has quit IRC | 07:59 | |
*** themroc has joined #ara | 08:19 | |
*** gvincent has joined #ara | 08:50 | |
*** gvincent has quit IRC | 08:50 | |
*** gvincent has joined #ara | 09:28 | |
*** dougbtv has quit IRC | 10:15 | |
*** gvincent has quit IRC | 11:25 | |
*** gvincent has joined #ara | 11:25 | |
*** dougbtv has joined #ara | 12:19 | |
*** gvincent has quit IRC | 12:31 | |
*** dougbtv has quit IRC | 13:03 | |
*** dougbtv has joined #ara | 13:40 | |
*** dbpiv has joined #ara | 13:41 | |
*** bcoca has joined #ara | 13:43 | |
*** bcoca has joined #ara | 13:43 | |
*** dougbtv has quit IRC | 13:44 | |
*** dougbtv has joined #ara | 14:05 | |
*** dougbtv has quit IRC | 14:11 | |
*** dougbtv has joined #ara | 14:18 | |
*** gvincent has joined #ara | 14:20 | |
*** tbielawa has joined #ara | 14:20 | |
*** dougbtv has quit IRC | 14:30 | |
apollo13 | dmsimard: no strong preference, I use what fits for the specific deployment :) | 14:32 |
dmsimard | gunicorn or uwsgi ? need to work on docs/deployment | 14:34 |
dmsimard | apollo13: ^ | 14:34 |
apollo13 | dmsimard: gunicorn | 14:34 |
dmsimard | ack | 14:35 |
apollo13 | but generally: what fits better for the specifc environment ;) | 14:35 |
dmsimard | sure, I just want to use/document one thing for now | 14:35 |
apollo13 | but uwsgi is relatively hard to configure, it has like 700 options | 14:35 |
apollo13 | gunicorn has no C deps, so that makes it rather nice | 14:35 |
dmsimard | for example ara is currently documented with mod_wsgi but not other things | 14:35 |
dmsimard | I want to document/support 2-3 deployment scenarios | 14:35 |
dmsimard | apollo13: btw a live demo will eventually be redeployed automatically on https://api.demo.recordsansible.org/api/v1/ | 14:36 |
Xaroth | Uwsgi isn't hard to configure, it did have a fuckton of config options, 90% of which you won't ever use | 14:50 |
Xaroth | But a uwsgi config file should only be about 10 lines | 14:51 |
dmsimard | Xaroth: are you familiar with uwsgi deployments of django ? :D | 14:52 |
Xaroth | Yes | 14:53 |
Xaroth | Very | 14:53 |
Xaroth | 2 config files, one for emperor mode, one per app | 14:54 |
Xaroth | And one unit/init file | 14:55 |
dmsimard | Xaroth: sweet! Do you happen to already have something we could use ? :p | 14:56 |
dmsimard | If you could contribute it, even better | 14:56 |
Xaroth | I should have some somewhere, will check when I'm back home tonight | 14:57 |
Xaroth | How do you want it, just the config files or full Ansible roles | 14:57 |
dmsimard | If the roles are open, we could look at them | 15:02 |
Xaroth | If they are on my own envs I can open them | 15:03 |
dmsimard | Xaroth: Up to you, we need to document setting up the ARA 1.0 things in general. I wouldn't turn down a contribution for uwsgi docs or playbooks to deploy ARA with it :D | 15:10 |
dmsimard | It'll be important to have roles for 1.0, especially because the web part will no longer come bundled with "pip install ara" | 15:14 |
*** mgariepy has quit IRC | 15:18 | |
*** mgariepy has joined #ara | 15:19 | |
*** tbielawa has left #ara | 15:33 | |
*** herald85 has joined #ara | 15:35 | |
*** Led_Zeppelin has joined #ara | 15:48 | |
Led_Zeppelin | hey there | 15:48 |
herald85 | continuing from #ansible : whats the timeline for 1.0 ? | 15:48 |
herald85 | Led_Zeppelin: goshdarn he tricked us into joining his channel :X | 15:48 |
Led_Zeppelin | ha yeah. | 15:49 |
Led_Zeppelin | although i never used ara my issue is there is too much stuff that needs to be installed to get it going. | 15:49 |
dmsimard | herald85: I'm long overdue for a status update but it's been more than a year in the making.. I've attempted to predict timelines before and have horribly failed so I'm trying to be cautious about timelines now :p | 15:49 |
dmsimard | herald85: does "soon" work ? :p | 15:49 |
Led_Zeppelin | ideally, it would be great with ara would just send json output to a endpoint. and the endpoint does all the processes (storing) and visualizing. | 15:49 |
dmsimard | Led_Zeppelin: but that's what ara does :p | 15:50 |
dmsimard | Led_Zeppelin: https://api.demo.recordsansible.org/api/v1/ | 15:50 |
dmsimard | https://ara-server.readthedocs.io/en/latest/arch.html | 15:50 |
Led_Zeppelin | right, but with a lot of infrastructure such as sql drivers, paramiko, a webserver, etc... | 15:50 |
dmsimard | it doesn't need to be that way | 15:50 |
dmsimard | a webserver or an api server is not required | 15:51 |
dmsimard | everything can be offline if required | 15:51 |
dmsimard | defaulting to sqlite | 15:51 |
*** raktajino has joined #ara | 15:51 | |
dmsimard | 1.0 has an API client that is able to "talk" to the API without an API server | 15:51 |
dmsimard | if you need to, you can spin up an API server, though | 15:51 |
Led_Zeppelin | i see | 15:52 |
Led_Zeppelin | let me first get it installed and play with it. | 15:52 |
Led_Zeppelin | so, I use ansible in a docker container, so I guess i need to have ara in the container also? | 15:53 |
Xaroth | Ara hooks into Ansible to be able to get the task output, so yes | 15:53 |
dmsimard | Led_Zeppelin: so a word of caution | 15:53 |
dmsimard | Led_Zeppelin: the current stable release of ara (0.16.1) on pypi is nothing like what we've just discussed with an API and everything | 15:54 |
dmsimard | 1.0 is a complete rewrite | 15:54 |
Led_Zeppelin | not a problem. i will use 0.16.1 | 15:54 |
dmsimard | Led_Zeppelin: there was a user who contributed some docker things recently, hang on | 15:54 |
dmsimard | Led_Zeppelin: https://www.reddit.com/r/ansible/comments/9u7d9h/i_found_configuring_ara_in_apachewsgi_confusing/ | 15:55 |
Led_Zeppelin | yikes. you see, it IS very confusing :-) | 15:55 |
dmsimard | ¯\_(ツ)_/¯ | 15:55 |
Led_Zeppelin | the web portion should be outsourced to a better framework. Not python. Like go or java for easier deployment. | 15:55 |
dmsimard | the web is bundled in 0.x, it's no longer bundled in 1.0 | 15:56 |
dmsimard | 1.0 will feature a standalone/stateless interface written in javascript/react | 15:56 |
Led_Zeppelin | i see | 15:56 |
dmsimard | or, well, that's what we're trying to do -- I guess once you have the API, people can write their own frontends to it | 15:56 |
herald85 | ARA website isnt showing anything so I guess that means my config is off? | 15:57 |
Led_Zeppelin | i think its a cool concept BTW | 15:57 |
dmsimard | herald85: if you ran ansible with ara enabled, it should have created a database in ~/.ara/ansible.sqlite -- you can check if there's a playbook in it with something like: sqlite3 ~/.ara/ansible.sqlite "select path from playbooks;" | 15:58 |
dmsimard | herald85: if there's nothing in the interface, it usually means one of two things: 1) ansible didn't run with the callback enabled 2) the web app isn't looking at the right database (i.e, if it's running under a different user than what the ansible playbook ran with) | 15:59 |
herald85 | hm i dont see a sqlite file indeed. I configured : | 16:00 |
herald85 | [ara] ARA_DIR=/etc/ansible_ara | 16:00 |
herald85 | and that's empty | 16:00 |
Xaroth | Led_Zeppelin: Java and easier ?!?! | 16:00 |
Xaroth | `ara-manage runserver` | 16:00 |
dmsimard | herald85: did you set the location of the callback plugin in the configuration ? | 16:00 |
Xaroth | Presto, something that runs | 16:00 |
dmsimard | ^ right, it's easy to get started but I get that configuring things for larger scale (with apache, centralized database, etc.) can be more complicated | 16:01 |
Xaroth | Easier than with any Java app tbqfh | 16:02 |
dmsimard | Last time I did any remotely serious java was in college and that wasn't much. I try to forget those days :) | 16:02 |
dmsimard | I'd love to pick up golang, though. There's a lot to love about it but I haven't had the use case or the opportunity for it. I guess I haven't come up with something that /required/ something other than python | 16:03 |
Xaroth | Same | 16:04 |
dmsimard | before python I did a lot of perl | 16:04 |
* dmsimard shivers | 16:04 | |
Xaroth | I tried to fiddle with nginx-sso, which was go based.. was actually not that hard to get into | 16:04 |
dmsimard | it's not hard to read but writing it is another matter | 16:05 |
herald85 | mmh can't get it to work. I'll have to check again tomorrow. | 16:05 |
Xaroth | True | 16:05 |
dmsimard | herald85: let me know if you can't figure it out, happy to help | 16:06 |
Xaroth | ^ | 16:06 |
herald85 | i'm new to pip , but is it supposed to end up in /usr/local ? | 16:07 |
herald85 | locate ara | grep callbacks /usr/local/lib/python2.7/dist-packages/ara/plugins/callbacks | 16:07 |
dmsimard | herald85: that's an appropriate location, means it is installed for the global python interpreter | 16:08 |
dmsimard | herald85: so before running your playbook you need to do something like "export ANSIBLE_CALLBACK_PLUGINS=/usr/local/lib/python2.7/dist-packages/ara/plugins/callbacks" or put it in your ansible.cfg file | 16:08 |
dmsimard | fwiw ara ships some helper modules to find those paths because it can be just about anywhere depending on the distribution, python version, virtual environment, etc. | 16:09 |
Led_Zeppelin | ok. so I installed ara | 16:09 |
dmsimard | "python -m ara.setup.callback_plugins" prints the path that you found | 16:09 |
Led_Zeppelin | ran my playbook and running my server, but I don't see any reports. | 16:09 |
dmsimard | Led_Zeppelin: did you export the callback plugins variable like I mentioned above ? | 16:09 |
Led_Zeppelin | yep. i did | 16:10 |
Led_Zeppelin | in the callback does it have hardcoded to 127.0.0.1? if so I would need to change that. | 16:10 |
dmsimard | ara-manage runserver has some arguments to customize the binding address and port if need be | 16:10 |
Led_Zeppelin | yeah, i am able to run ara-manage with 0.0.0.0 port 9191 no issue there. | 16:11 |
Led_Zeppelin | running in a docker container. | 16:11 |
herald85 | oh huh... python -m ara.setup.library /usr/local/lib/python2.7/dist-packages/ara/plugins/modules BUT ls: cannot access '/usr/local/lib/python2.7/dist-packages/ara/plugins/modules': No such file or directory | 16:11 |
Led_Zeppelin | i suspect when I run my playbook its hitting 127.0.0.1 | 16:11 |
dmsimard | herald85: oops, I need to remove that | 16:11 |
dmsimard | herald85: there used to be a bug in ansible where the modules directory was *required* despite ara not needing to ship anything there | 16:11 |
dmsimard | you only need to care about callback_plugins and, if you want to use ara_record, action plugins | 16:12 |
herald85 | ah OK :) | 16:12 |
dmsimard | Led_Zeppelin: there's no API in 0.x, it's all directly to the database | 16:12 |
dmsimard | Led_Zeppelin: if there's nothing in the web app, it means the place where data is being recorded to and where it's read from are different | 16:12 |
dmsimard | "ara-manage runserver" is really *only* a passive web application that reads from the database | 16:12 |
Led_Zeppelin | let me try setting the ARA_HOST when running the playbook | 16:12 |
dmsimard | the web application doesn't even need to run before launching your playbook | 16:13 |
dmsimard | you really just need to set ansible to use the callback plugin and that should be it | 16:13 |
Led_Zeppelin | i see | 16:14 |
Led_Zeppelin | seems li need to share the database. | 16:15 |
Led_Zeppelin | seems I need to share the database in my docker containers. | 16:15 |
Led_Zeppelin | Xaroth, well, not as simple as ara-manage runserver because you need to get its dependecies which is much harder in python than in java. | 16:17 |
Xaroth | Wait what | 16:17 |
Xaroth | It's really not | 16:18 |
herald85 | do I need to change "stdout_callback = yaml" too? | 16:18 |
Led_Zeppelin | got it working BTW. | 16:19 |
Xaroth | Python is very, very easy with dep management | 16:19 |
Xaroth | Pip install Ara | 16:19 |
Led_Zeppelin | Xaroth, lol. i take it you never worked in a large environment :p | 16:19 |
Xaroth | Done. | 16:19 |
openstackgerrit | David Moreau Simard proposed openstack/ara master: Remove the notion of ANSIBLE_LIBRARY from setup and docs https://review.openstack.org/620647 | 16:20 |
Led_Zeppelin | Xaroth, you are assuming; 1) the proxy is properly setup. 2) everyone is running the same version of python 3) people pinned their version of ansible to XYZ and they refuse to upgrade beacuse it works. etc... | 16:20 |
Led_Zeppelin | dmsimard, interface is awesome! | 16:20 |
dmsimard | herald85: you can do what you want with stdout callbacks | 16:20 |
dmsimard | herald85: ara isn't a stdout callback and doesn't interfere | 16:20 |
Xaroth | I'm devops, those problems are not an issue in my environments because all are managed properly | 16:21 |
Xaroth | Python version is moot | 16:21 |
Led_Zeppelin | how big is your environment? | 16:21 |
Xaroth | Ansible version is moot, as long as it's supported by ara | 16:21 |
Led_Zeppelin | and how many active users? | 16:21 |
Xaroth | Of all our customers? Several thousand | 16:22 |
dmsimard | Led_Zeppelin: yay, it works, haha | 16:22 |
dmsimard | Xaroth: I think it's fair to say that different environments have different complexities based on different requirements -- I can see how it can be easy for someone but not for someone else | 16:24 |
dmsimard | the other day there was a user who needed to install ara in air-gapped networks (i.e, without access to pypi) | 16:24 |
Led_Zeppelin | bingo :p | 16:24 |
Xaroth | That is fair, but that's not to blame on Ara/python | 16:25 |
dmsimard | that's also an accurate statement :D | 16:25 |
herald85 | ow ***** i'm stupid | 16:25 |
dmsimard | Go is nice because everything gets compiled down to a binary | 16:25 |
Led_Zeppelin | i am not blaming; i am telling the reality. Its much harder to do with depends on Python than Go/Java. | 16:25 |
dmsimard | so you ship that binary and you're done | 16:25 |
herald85 | I misread the docs and added ara_ to all the vars in the ansible.cfg | 16:25 |
Led_Zeppelin | dmsimard, bingo! | 16:25 |
Led_Zeppelin | dmsimard, i am learning go; i can help you with any ansible golang projects :p | 16:26 |
Xaroth | Yeah, but that means you have to trust that binary | 16:26 |
dmsimard | Led_Zeppelin: maybe we'll need a golang API client for ara one day, I'll be in touch :p | 16:26 |
dmsimard | Xaroth: yup, but you have that problem with python to some extent as well | 16:27 |
dmsimard | I am a packager for different packages in fedora/centos | 16:27 |
herald85 | eurka, we have fancy logs | 16:27 |
dmsimard | and sometimes it's not very fun | 16:27 |
Xaroth | We at some point ran out own Deb build farm because our customer refused to use binaries from "outside sources" | 16:27 |
herald85 | eureka even | 16:27 |
Xaroth | That was a fun project | 16:27 |
dmsimard | herald85: yay | 16:28 |
dmsimard | Led_Zeppelin, herald85: the web interface isn't super intuitive (because I'm not a frontend person and I've done a lot of copy/pasting) but there's a video where I go through the different features in case it might be helpful: https://www.youtube.com/watch?v=k3i8VPCanGo | 16:29 |
herald85 | i'll check it out tomorrow, thanks for the help ! | 16:31 |
Led_Zeppelin | yeah, i am not good with webinterfaces. But I believe thats the reason most people will use ara. I think the setup should be much easier. Basically, set the environment variable for the call back. The call back should just POST to the running webserver. The webserver should ingest and store into a database and also serve the results. | 16:31 |
Led_Zeppelin | the call back mechanism should be dead simple. you set 1 variable. the http host endpoint and done! | 16:32 |
dmsimard | Led_Zeppelin: that's more or less how 1.0 will work but I did not want to make running an API server or a web server mandatory | 16:32 |
dmsimard | so it defaults to localhost/offline | 16:32 |
Led_Zeppelin | i see | 16:32 |
dmsimard | you can set a remote api server, but you don't need to | 16:32 |
Led_Zeppelin | that would be nice. | 16:32 |
herald85 | one last question: if I had multiple hosts running ansible scripts, do they each get their own mysql/postgres or is there an identifier in the DB? | 16:34 |
Xaroth | You can make multiple instances write to 1 db | 16:35 |
dmsimard | Led_Zeppelin: to give you an idea of what the API clients look like: http://paste.openstack.org/show/736325/ | 16:36 |
dmsimard | herald85: you can have everything use the same database, or different databases, that's up to you | 16:37 |
Led_Zeppelin | going to use swagger or raml? | 16:37 |
dmsimard | Led_Zeppelin: neither, it leverages django-rest-framework (same thing as Ansible Tower and AWX) | 16:37 |
dmsimard | I believe django-rest-framework has implementations for swagger | 16:38 |
Led_Zeppelin | ok | 16:38 |
herald85 | thanks again, cya tomorrow for more ARA probing | 16:39 |
*** herald85 has quit IRC | 16:39 | |
dmsimard | Led_Zeppelin: so are you really Led Zeppelin ? :p | 16:41 |
Led_Zeppelin | ha yeah | 16:41 |
dmsimard | achievement unlocked, get a band to try ara | 16:41 |
*** themroc has quit IRC | 17:09 | |
*** dougbtv has joined #ara | 17:27 | |
*** sshnaidm is now known as sshnaidm|afk | 18:01 | |
Led_Zeppelin | so, does ara only work with ansible-playbooks? not for ansible command? | 20:09 |
Xaroth | correct | 20:10 |
Led_Zeppelin | so, if I want to do ansible -m ping it won't work. is there a work around for it? | 20:10 |
Led_Zeppelin | or don't even bother | 20:10 |
Xaroth | turn it into a playbook? :P | 20:10 |
Led_Zeppelin | yep. thats what I will do | 20:10 |
Xaroth | ansible-playbook ping.yml | 20:11 |
dmsimard | It might be possible to record adhoc things in the future. It's on the todo list to investigate. | 20:30 |
*** openstackgerrit has quit IRC | 20:36 | |
*** dbpiv has quit IRC | 20:39 | |
*** bcoca has quit IRC | 22:12 | |
dmsimard | If you speak french, you might be interested in a presentation I did about ARA to Ansible meetups in France today: https://www.youtube.com/watch?v=BlU_QnxRaPA | 22:22 |
dmsimard | If you don't, well, there's going to be an english version available eventually :) | 22:22 |
*** dbpiv has joined #ara | 22:45 | |
Xaroth | My French teacher quickly realized that teaching me French was not really going to happen, so I'll wait for the English one :D | 22:51 |
*** dbpiv has quit IRC | 22:53 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!