[00:26] <jose> oooooooh, have we now got a smart bot?
[00:52] <marcoceppi_> jose: ?
[00:52] <jose> marcoceppi_: I see a bot has filed two bugs
[00:53] <marcoceppi_> jose: where?
[00:53] <jose> https://bugs.launchpad.net/charms/+bug/1316361
[00:53] <_mup_> Bug #1316361: Add nagios connection tests to postgresql charm <Juju Charms Collection:New> <https://launchpad.net/bugs/1316361>
[00:53] <jose> https://bugs.launchpad.net/charms/+bug/1316362
[00:53] <_mup_> Bug #1316362: Add test for held package behavior in postgresql charm  <Juju Charms Collection:New> <https://launchpad.net/bugs/1316362>
[00:53] <jose> psql charm
[00:53] <jose> the CI bot
[00:55] <marcoceppi_> jose: no idea where that thing is running or what it's doing
[00:57] <jose> from the name, I
[00:57] <jose> I'd say it's the CI bot, but I cannot assure anything
[00:57] <jose> maybe ask bradm? (vanguard)
[02:19] <_sEBAs_> hi o/
[02:21] <_sEBAs_> was thinking the other day, there's a "local" env type for juju, but what about "remote" one?
[02:21] <_sEBAs_> thats possible today?
[02:24] <_sEBAs_> uuuhh... so quiet
[02:24] <_sEBAs_> :P
[02:30] <marcoceppi_> _sEBAs_: well, by definition all other environments are remotes
[02:30] <marcoceppi_> _sEBAs_: but I think what you're talking about is the manual provider
[02:30] <marcoceppi_> https://juju.ubuntu.com/docs/config-manual.html
[02:47] <_sEBAs_> marcoceppi_: manual env type I would have to provide each machine
[02:48] <_sEBAs_> right?
[02:48] <_sEBAs_> marcoceppi_: in a local type, juju provide them creating containers
[02:50] <_sEBAs_> the problem is that for startups, amazon and others is a little expensive
[02:51] <_sEBAs_> so buying a dedicated server is less than 100 bucks, and you can have more than 10 machines for dev and prod purpose
[02:53] <_sEBAs_> and openstack is not a walk in the park to install in ONE server :P
[02:56] <lazyPower> _sEBAs_: correct. manual is as the name states: a manual process.
[02:56] <_sEBAs_> lazyPower: exactly
[02:56] <lazyPower> _sEBAs_: however with some clever charming, you could utilize a single server rather efficiently. Most of the charms in the charm store are aimed at single purpose machines for scale out usage.
[02:57] <lazyPower> but if you want to build a subordinate to deploy services, eg: your drupal submission - to bolt into a pre-existing apache2 deployment, you can get multi-tennancy fairly quickly.
[02:57] <lazyPower> just make sure the deployment path, and domain name + ssl configuration is in the charm options.
[02:57] <_sEBAs_> hmmm
[02:58] <lazyPower> _sEBAs_: also, did you see that there is another drupal submission to the store using DRUSH as the deployment and configuration mechanism?
[02:59] <_sEBAs_> lazyPower: yes!!
[02:59] <_sEBAs_> I'm using drush to deploy the first drupal install
[02:59] <lazyPower> I thought that would excite you :) Having done a few drupal sites, i was impressed by drush when I was building stuff manually
[02:59] <_sEBAs_> but not for getting more configurations hover drupal
[03:00] <lazyPower> now that juju has a nice drush wrapper, i'm really impressed with the overall extensibility of that charm.
[03:00] <_sEBAs_> lazyPower: yeah thanks!
[03:00] <_sEBAs_> nice to know that lazyPower
[03:00] <lazyPower> My thought for improvement would be adding a subordinate to use drush to export/backup the site
[03:00] <lazyPower> or build a backup server charm with relations that install a cron job to do that for you
[03:00] <_sEBAs_> hmm thats interesting
[03:00] <lazyPower> either approach would be good
[03:01] <_sEBAs_> subordinate charms are in my list of study already :D
[03:03] <_sEBAs_> lazyPower: there's a lot of thoughts about charms and their types
[03:03] <_sEBAs_> for example
[03:04] <_sEBAs_> each project haves some specific libraries installed, and other things
[03:04] <lazyPower> _sEBAs_: I'm not sure I follow, is this with regard to drupal? or the charm ecosystem as a whole?
[03:04] <_sEBAs_> so i don't like the ideia of "cloning" the drupal charm and call it with the name of the project
[03:05] <_sEBAs_> lazyPower: i'm worry about how to extend things
[03:06] <_sEBAs_> and not repeat code for tasks like install and configure drupal with nginx, etc...
[03:07] <jose> hello, mr. lazy
[03:07] <lazyPower> _sEBAs_: idempotency guards would prevent that
[03:07] <lazyPower> apt is idempotent by default, so no issue w/ the packages
[03:08] <_sEBAs_> lazyPower: sorry, my english is limited and a little rusty :P
[03:08] <_sEBAs_> but its not only packages
[03:08] <_sEBAs_> lets say "tasks"
[03:08] <lazyPower> and unless you're getting crazy with PHP application pools - the real 'meat' of the charm is just the cloning of the Drupal source, and adding a vhost - which is what you would do as an admin anyway.
[03:09] <lazyPower> jose: o/
[03:09] <jose> lazyPower: got some time now?
[03:09] <lazyPower> jose: to do?
[03:09] <_sEBAs_> lazyPower: yeah! but thats the thing ;) Juju charms is not only for ops
[03:09] <_sEBAs_> its almost perfect for devops as well
[03:10] <jose> lazyPower: fix that messy owncloud test - I want to get changes in the store now! :P
[03:10] <lazyPower> _sEBAs_: thats exactly what juju's tagline is 'devops distilled' ;)
[03:10] <lazyPower> jose: ah, i didn't work today, ping me tomorrow (the tomorrow bug is still in effect)
[03:10] <_sEBAs_> yeah!! I know! hehe thats why Im crazy about juju right now
[03:10] <jose> haha, ack
[03:10] <jose> _sEBAs_: and even non-tech people understand how it works :)
[03:11] <lazyPower> jose: sorry man :( I should have known i'd be taking the day off with all the jet lag + personal crap i have going on.
[03:11] <_sEBAs_> yeah! exactly
[03:11] <lazyPower> but if you poke me tomorrow i'll take a look at the tests if i'm around.
[03:11] <jose> lazyPower: it's good - it's been a messy day for me too. had a super exciting exam today!
[03:12] <lazyPower> _sEBAs_: the onus of ensuring tasks only occur when they need to are on the charm developer + interested community members. This is why the charm store policy has a requirement that hooks are idempotent so they dont repeat actions that have already happened. Maybe i'm being daft but I dont understand the concern you're bringing up.
[03:13] <jose> _sEBAs_: if you prefer to speak Spanish, let me know :)
[03:17] <_sEBAs_> jose: thanks!!! but I need to exercise my english
[03:17] <jose> np :)
[03:17] <_sEBAs_> lazyPower: I have to know that do you mean with idempotent, little search will solve that
[03:18] <jose> _sEBAs_: it means that if something is set, it need to be changeable, that things will not get hardcoded or locked
[03:18] <_sEBAs_> lazyPower: oohh i get it
[03:19] <lazyPower> _sEBAs_: http://en.wikipedia.org/wiki/Idempotence
[03:19] <_sEBAs_> yeah! exactly
[03:19] <lazyPower> eg: if i set a password at deploy, and the "task" sets /etc/myapp/somepassword.cfg - if that password has not changed, the hook should not touch /etc/myapp/somepassword.cfg
[03:20] <_sEBAs_> lazyPower: thanks :P
[03:20] <_sEBAs_> yeah, state
[03:20] <lazyPower> however, if i change that password - update the configuration file.
[03:20] <_sEBAs_> yes, and that is one of the biggest challenges of charm developing (for me)
[03:21] <lazyPower> _sEBAs_: Juju wraps several configuration management tools that have solved this problem for us. Ansible, SaltStack, Chef and Puppet are four good examples that we have charms leveraging them.
[03:21] <lazyPower> tehre are also incoming changes to charmhelpers that will assist you in the actual configuration value management from tvansteenburgh
[03:21] <_sEBAs_> thats why I'm starting to wrote the drupal charm in ansible
[03:21] <lazyPower> if you want to take a pure python approach
[03:21] <_sEBAs_> yes! lazyPower I learned a lot reading the mysql charm
[03:22] <_sEBAs_> and the ruby one with chef
[03:22] <lazyPower> the rails charm is really good - it needs a bit of love
[03:22] <jose> much ruby such gems wow
[03:22] <lazyPower> and chef is a beast... its taking a sledgehammer to a 10 penny nail approach.
[03:22] <_sEBAs_> yeah I sow a maintainers call
[03:22] <_sEBAs_> hahaha @lazyPower
[03:23] <_sEBAs_> yeah
[03:23] <_sEBAs_> so great!, because thats where i wanna to get with this talk
[03:23] <Azendale> Does anyone have recommendations for the best guide to try to set up openstack in a High Availability configuration with Juju?
[03:23] <lazyPower> but _sEBAs_, if you need help / review of your charm progress for idempotency, feel free to submit a charm review request for 'as is' - and someone on the charmers team will give it a good reviwe for you and help line out any issues you may be having.
[03:24] <_sEBAs_> so talking about my concern about DRY avoiding repeating code hover charms
[03:24] <_sEBAs_> lazyPower: already did that ;)
[03:25] <_sEBAs_> lazyPower: https://bugs.launchpad.net/bugs/1315428
[03:25] <_mup_> Bug #1315428: Review needed: Drupal Charm <drupal> <Juju Charms Collection:New> <https://launchpad.net/bugs/1315428>
[03:25] <jose> _sEBAs_: as far as I know, it needs to be in a bzr branch?
[03:25] <jose> and you need to subscribe the charmers team
[03:25] <lazyPower> _sEBAs_: https://juju.ubuntu.com/docs/authors-charm-store.html
[03:25] <lazyPower> there's a policy for how to get your charm in the review queue
[03:25] <_sEBAs_> jorge castro, tould me I didn't need it, just jump hover the step #9 of the guide
[03:26] <lazyPower> and yeah, we're working on moving stuff over to github and use both GH and LP
[03:26] <lazyPower> no ETA on that - so dont ask :P
[03:26] <lazyPower> because i have no answers
[03:26] <_sEBAs_> jose: didn't know about that :(
[03:27] <jose> lazyPower: oh, oh, I know when it's going to be ready!
[03:27] <_sEBAs_> lazyPower: glad to know!!
[03:27] <lazyPower> _sEBAs_: so long as you followed the directions in the charm store doc and omitted the launchpad branch - but inserted another repository location
[03:27] <lazyPower> we'll be fine.
[03:27] <jose> soon™
[03:27] <_sEBAs_> hehehe
[03:27] <lazyPower> jose: you're absolutely encouragable you know that?
[03:27] <lazyPower> :P
[03:28] <jose> yep, and if you want a more precise approach it'll be ready soon™©
[03:28] <_sEBAs_> glad to know, because theres a lot of people that deploy drupal with pour configurations and techs
[03:29] <lazyPower> _sEBAs_: if you want to be a juju ambassador to the drupal community, let me know when you're ready and i'll republish/reblog/repost your efforts and help syndicate.
[03:29] <lazyPower> I know several people that use drupal every day
[03:30] <_sEBAs_> and that charm is using a lot of the experience I and my company haves, the community needs that, with transparency with juju :)
[03:30] <_sEBAs_> lazyPower: nice!! I would be really honored :D
[03:31] <lazyPower> de nada my friend. I appreciate your efforts to build quality stuff and excitement for juju :)
[03:31] <_sEBAs_> actually, I'm going tomorrow to the FISL in Porto Alegre, Brasil
[03:31] <_sEBAs_> and I'm going to talk(again) about juju and devops principles
[03:31] <lazyPower> Nice!
[03:31] <lazyPower> Could you link me your slide deq / talk when its done?
[03:32] <_sEBAs_> yeah! we are organizing the Drupal Camp over there
[03:32] <_sEBAs_> yeah ofcourse, theres on, in spanish I did in Peru a few months a go
[03:32] <_sEBAs_> http://slides.com/sebastianferrari/desenvolvimento-drupal-em-equipe
[03:33] <lazyPower> Nice
[03:33] <lazyPower> I see your slides, and raise you my slides in the same framework
[03:33] <lazyPower> http://dasroot.net/presentations/wplug/#/
[03:33] <jose> _sEBAs_: and why didn't you let me know so I could be there?
[03:33] <_sEBAs_> actually, i arrange a charm school in the Drupal Camp of Peru, where marcoceppi_ show us and answer a lot of questions :)
[03:33] <jose> why wasn't I aware of that?
[03:33] <jose> why didn't I go?!
[03:33] <lazyPower> _sEBAs_: i was in that charm school :)
[03:34] <jose> I'm mad :(
[03:34] <lazyPower> you had a room with like, 12 developers
[03:34] <lazyPower> and frequent stops for translation
[03:34] <_sEBAs_> heheh jose i'm knowing this community now! hehe
[03:34] <jose> lazyPower: you guys should've let me know it was happening and I would've taken swag
[03:34] <_sEBAs_> oohhhhh lazyPower didn't know so sorry
[03:34] <_sEBAs_> hehe
[03:35] <lazyPower> De nada! no reason to apologize, that was a nice trip down memory lane :)
[03:35] <_sEBAs_> yeah!
[03:35] <lazyPower> jose: we weren't speaking yet, i'll put on my psychic helmet and send you some brain waves in the past. maybe we'll create a paradox where you get to go to drupal camp
[03:35] <lazyPower> this was ~ my 2nd week with canonical when that happened.
[03:36] <_sEBAs_> so i'm evangelizing juju around the devops principles as lean tools
[03:36] <_sEBAs_> hahahaha
[03:36] <jose> well, next time I'll take swag
[03:36] <jose> I *was* actually thinking on organizing a charm school
[03:36] <_sEBAs_> we can arrange more
[03:37] <_sEBAs_> :)
[03:37] <_sEBAs_> even in the FISL
[03:37] <jose> still need to find a place and the right time
[03:37] <jose> I don't think I can go to Brazil this weekend :P
[03:37] <_sEBAs_> do you know what is FISL right?
[03:37] <jose> I do :)
[03:37] <_sEBAs_> nice!
[03:37] <_sEBAs_> so we can do a nice demonstration
[03:38] <_sEBAs_> and blow up some brains out!!
[03:38] <lazyPower> _sEBAs_: the slides are great. good info packed in here
[03:38] <_sEBAs_> lazyPower: thanks!
[03:39] <_sEBAs_> i'm trying to get my company 100% devops
[03:39] <_sEBAs_> but it's hard work
[03:39] <lazyPower> _sEBAs_: selling culture is difficult.
[03:39] <_sEBAs_> exactly !!!
[03:39] <_sEBAs_> thats the main thing you know...
[03:40] <_sEBAs_> you can have more tools than you can manage, but without culture the hole can folldown
[03:41] <lazyPower> distill away complexity one piece at a time
[03:41] <lazyPower> thats the best part of juju
[03:41] <lazyPower> use as much or as little as you need
[03:41] <_sEBAs_> yes
[03:42] <_sEBAs_> talking about that, we are working in a "charm factory" using ansible
[03:43] <_sEBAs_> so imaging picking ansible roles, to make your charm
[03:44] <_sEBAs_> we are in architecture steps yet
[03:44] <lazyPower> _sEBAs_: also  - with your community consisting of such a diverse range of platforms for dev (i'm looking at you mac users) dont forget we have vagrant images to help
[03:44] <lazyPower> http://blog.dasroot.net/writing-juju-charms-on-osx/
[03:44] <_sEBAs_> I would love to know what are your thoughts about that
[03:44] <_sEBAs_> lazyPower: Im with mac
[03:45] <lazyPower> _sEBAs_: roles are good when they are on the context of a relationship, and should exercise opinionated configurations dependent on the scope of the relationships.
[03:45] <lazyPower> but if you're not careful they can stomp on one another with unintended side effects, otherwise roles are a great way to extend a charm for opinionated deployments
[03:46] <_sEBAs_> so i get to the point to discover that the VagrantFile needs an update, those python scripts that install and configure the juju
[03:46] <_sEBAs_> I think can be more open to people to help to build images with juju and juju gui ready to work
[03:46] <lazyPower> eg: hardened mode (only core, no cruft, tuned for safety), performance (tuned PHP stack, optimized caching installed)
[03:46] <lazyPower> _sEBAs_: well they just got an update last monday
[03:47] <_sEBAs_> lazyPower: get it, thanks for the advice
[03:47] <lazyPower> they were in dodgy shape over the last month during the 14.04 release rush. Other priorities came up - and some things changed out from underneath the ground. I have a work item task to get those vagrant boxes under CI
[03:48] <lazyPower> _sEBAs_: but yeah - good idea with roles taking care of the application 'profile' to speak.
[03:48] <_sEBAs_> nice!!!
[03:48] <_sEBAs_> lazyPower: glad to know :)
[03:49] <_sEBAs_> why do we need those redirecting scripts into the box ?
[03:49] <_sEBAs_> is it for the juju-gui ?
[03:49] <lazyPower> _sEBAs_: there are 2 layers of redirect - one moment while i compose this
[03:49] <_sEBAs_> hehe ok
[03:50] <lazyPower> the first layer of redirect is with regard to the juju gui - that is normally deployed into an LXC container. It has to communicate with the bootstrap node. At present the bootstrap node lives on the host that is producing the LXC containers
[03:50] <lazyPower> so, thats layer 1 - to get you tot he GUI
[03:51] <lazyPower> the second layer, with SSHUTTLE is to get you a VPN into your LXC environment in the VM so you can interact with the services on your host computer, hosting the virtual machine (eg, deploy drupal in vagrant, you're routing from host => vm => lxc)
[03:51] <lazyPower> thats layer 2
[03:51] <lazyPower> and if there's any other magic going on in between, i'm sorry i omitted it - but its late :P
[03:52] <_sEBAs_> hehe get it
[03:53] <lazyPower> i left out some bits about the gui, so glad you followed :)
[03:53] <_sEBAs_> the first level that came from nothing for me
[03:53] <lazyPower> its specific ot the UX of the vagrant box. we could have you sshuttle to the GUI, but wouldn't it be nice to just hit localhost:6080 and have the gui? we thought so.
[03:53] <lazyPower> so thats why that python redirect script is in cloudinit
[03:53] <_sEBAs_> because i was experiencing some odd issues with that
[03:54] <lazyPower> yeah... thats the oddities i was talking about that stemmed from about 3 to 4 weeks ago
[03:54] <_sEBAs_> yeah of course!
[03:54] <lazyPower> i was going to have a charm school and ran into those issues - so i was madly macguyvering a jujubox with packer prior to the charm school
[03:54] <lazyPower> instead of telling people how to build hteir own juju vagrant image, we punted and did juju run instead
[03:54] <_sEBAs_> haha
[03:55] <lazyPower> where jose got to put on his charm for the world and i spoke crazy fast about something thats insanely handy with CI
[03:55] <lazyPower> so, _sEBAs_, your next mission should you choose to accept it, is to get juju run doing automated deployments from jenkins ;)
[03:55] <_sEBAs_> yeah i was getting mad these days with that, so I made another vagrantfile
[03:56] <_sEBAs_> humm yeah, actually thats where I wanna get, after making provisioning and CM easy for the devs
[03:57] <_sEBAs_> then jenkins is the next step!
[03:57] <_sEBAs_> for example
[03:57] <lazyPower> _sEBAs_: WRT your question about openstack - an option for you  would be buy a beefy server
[03:57] <lazyPower> deploy MAAS region-controller & MAAS cluster-controller to the host
[03:57] <lazyPower> and use that to orchestrate KVM machines
[03:57] <_sEBAs_> jenkins can deploy a hole bundle, just to run all the BDD tests
[03:57] <lazyPower> the setup took me about 3 hours on my first run through.
[03:58] <lazyPower> the maas provider in juju is stellar
[03:58] <_sEBAs_> hmmm nice that you bring that up
[03:58] <lazyPower> i use that to keep my cloud costs down and orchestrate a 'juju lab' in my closet.
[03:58] <_sEBAs_> hmmm thats what I want
[03:58] <_sEBAs_> so let me see
[03:58] <lazyPower> i'm running a quad core, 12GB of ram (which is in need of an upgrade) and i can orchestrate ~ 13 VM instances on it before i see the host slow down to a crawl.
[03:58] <_sEBAs_> if i get your right
[03:59] <lazyPower> you'll want to pay special attention to the networking configuration of this though _sEBAs_
[03:59] <lazyPower> you need a server with 2 nics
[03:59] <_sEBAs_> yeah, roger that
[03:59] <lazyPower> that way you can do ethernet bridging an dkeep a management network, and a public networking (with a bridge that vlan's into your KVM instances)
[04:00] <_sEBAs_> so I dont need a public ip for every kvm instances
[04:02] <_sEBAs_> I was trying to install openstack with the devstack and all
[04:02] <_sEBAs_> docker and lxc worked fine, but
[04:03] <_sEBAs_> i was having some issue with the swift proxy service
[04:03] <_sEBAs_> wasn't working right, didn't know what a hell was that
[04:04] <_sEBAs_> I was going to try with the new icehouse version to see what happen
[04:07] <lazyPower> _sEBAs_: you'll need a reverse proxy daemon sitting in front of all that
[04:07] <lazyPower> but its completely do-able.
[04:07] <_sEBAs_> yes
[04:07] <_sEBAs_> i was using hipache
[04:07] <_sEBAs_> but, i needed more than 80/443 ports
[04:09] <_sEBAs_> i didn't even get it to work, meanwhile i was using sshuttle (not proud about it ¬¬)
[04:10] <_sEBAs_> in order to juju ssh into the instances and all...
[04:10] <lazyPower> _sEBAs_: Ah, yeah. Forwarding more than web traffic over that setup will be tricky unless you deploy a virtual router, and push all your traffic there.
[04:10] <lazyPower> which introduced SPOF
[04:11] <_sEBAs_> hmmm yeah, i need to study a little more on that
[04:11] <lazyPower> let me know what you come up with
[04:11] <lazyPower> i'm interested to see what you learn in this process :)
[04:11] <_sEBAs_> thank the tip lazyPower
[04:11] <_sEBAs_> *thanks
[04:11] <_sEBAs_> :)
[04:12] <lazyPower> np _sEBAs_, my pleasure
[04:13] <_sEBAs_> nice to know that theres a nice community over here :)
[04:14] <_sEBAs_> the other day i wen to an event about cloud solutions, so some hosting and others organizations that haves data centers in-company
[04:14] <_sEBAs_> were there
[04:14] <_sEBAs_> but
[04:15] <_sEBAs_> nobody even know about linux containers, so juju was out of the table
[04:16] <_sEBAs_> the bright side of that is, everyone went crazy about juju and all...
[04:16] <lazyPower> Its really brilliant with public clouds...
[04:16] <_sEBAs_> yeah
[04:16] <lazyPower> when I go to demos, i usually spin up ~ 18 hosts on AWS or HPCloud
[04:16] <lazyPower> and dive into the machines to show its really doing something and not just faking it out with the GUI
[04:16] <_sEBAs_> hehe nice
[04:17] <_sEBAs_> hahaha
[04:17] <_sEBAs_> the other day one client ask me, "but that is real, right?"
[04:18] <_sEBAs_> then i show it the drupal running and all
[04:18] <_sEBAs_> go mad!!
[04:20] <_sEBAs_> lazyPower and jose thanks for your advices, i'm glad that i talked with you guys
[04:20] <lazyPower> (ツ) yeah its kind of magical.
[04:21] <_sEBAs_> i'm going to make me some dinner now, and thats something that juju cant do it
[04:21] <jose> enjoy!
[04:22] <jose> maybe we'll have 'juju deploy food' in the future
[04:22] <_sEBAs_> hehe yeah!
[04:22] <lazyPower> jose: scope creep ;)
[04:23] <_sEBAs_> theres a juju that would it be nice to make me food, here in brasil if you only search "juju"
[04:24] <_sEBAs_> every one that searches for juju here when i talk about it, the results are stunning hehe
[04:25] <_sEBAs_> well thats it, see you next time guys :)
[10:54] <silverPony> Hello there!  Is it possible ot re-attach the node that was previously part of juju, without comissioning?
[11:47] <AJ_> Hi guys, I have some question. We are using Juju on MAAS with multiple environments
[11:47] <AJ_> If I wanna ssh into machine it gives error: juju ssh 1 -e maas
[11:47] <AJ_> error code is "ERROR control-bucket: expected string, got nothing"
[11:47] <AJ_> Any ideas?
[11:59] <Tug> AJ_, are you using juju-quickstart ?
[12:11] <silverPony> Hello there!  Is it possible ot re-attach the node that was previously part of juju, without comissioning?
[12:13] <marcoceppi_> silverPony: in maas?
[12:19] <silverPony> well, as soon as i juju remove-machine
[12:19] <silverPony> do i have to commission it in maas to bring back?
[12:27] <frankban> rbasak: morning
[14:34] <jose> ohai lazyPower
[14:34] <lazyPower> o/
[14:34] <jose> all going good?
[14:35] <lazyPower> yep
[14:35] <jose> awesome :)
[14:35] <jose> I was wondering if you can give me a hand with these tests now
[14:40] <_sEBAs__> hi lazyPower and jose :)
[14:40] <jose> hello, _sEBAs__ :)
[14:41] <_sEBAs__> hey jose now that i get it, you are from lima, peru hehe
[14:41] <jose> yes, I am :)
[14:41] <jose> did you google me? :P
[14:41] <_sEBAs__> i'm from uruguay :)
[14:41] <jose> awesome to hear
[14:41] <jose> now I know I'm definitely not the only juju user in south america \o/
[14:42] <_sEBAs__> sow a name of bug subscriber "José ...."
[14:42] <_sEBAs__> so a i figured out
[14:42] <_sEBAs__> hehe
[14:42] <_sEBAs__> hahaha
[14:45] <_sEBAs__> globo.com use juju too I think
[14:45] <jose> :P
[14:45] <_sEBAs__> they have a deployment tool https://github.com/tsuru/tsuru
[14:45] <jose> yeah, I think I'm subscribed to all charms bugs
[14:46] <jose> oh, that's cool!
[14:46] <lazyPower> jose: link to branch in question?
[14:47] <jose> lazyPower: https://code.launchpad.net/~jose/charms/precise/owncloud/port-change+repo+ssl-support
[14:48] <_sEBAs__> hey lazyPower awesome slides man!! (you pass me the link, but I didn't see it at the time ¬¬)
[14:50] <lazyPower> Thanks _sEBAs__
[14:50] <lazyPower> GPL 3'd - feel free to chop and remix. They are up on the presentation github
[14:51] <lazyPower> https://github.com/juju/presentations
[14:51] <_sEBAs__> awesome !
[14:54] <lazyPower> _sEBAs__: if you want to include your presentation feel free to issue a MP
[14:54] <lazyPower> we'll get to it as soon as we can
[14:55] <_sEBAs__> great!! we are working in an inforgraphic about devops using juju
[14:55] <lazyPower> nice!
[14:56] <lazyPower> please link me when that's complete. I'd like to see that
[14:57] <_sEBAs__> of course! as soon I get the first RC, i will paste the link here :)
[14:57] <lazyPower> jose: running the tests now
[14:57] <jose> lazyPower: ^c that, it'll give you an error as it is because I try to define the domain before d.setup
[14:58] <jose> and calling d.sentry.unit['haproxy/0'].info['public-address
[14:58] <lazyPower> jose: ack. I'm going to let it run and collect the output
[14:58] <jose> ']
[14:58] <jose> ok!
[14:58]  * jose is taking a look at the tracks errors (cc. cory_fu)
[14:59] <cory_fu> Thanks.  From my reading of the ticket you linked, it sounds like the version that breaks is actually bundled with tracks, which makes me wonder how the charm ever worked with that version
[15:00] <jose> well, it's not working as is on the store :)
[15:00] <jose> I'm trying to update to a newer version
[15:03] <jose> cory_fu: whoops, tracks 2.2 (fixed one) requires ruby >= 1.9.2, it'll need to be compiled
[15:04] <lazyPower> jose: there's a PPA for that
[15:04] <jose> oh really?
[15:04] <lazyPower> unless you *really* want to go the compilation route, then use RBENV plz
[15:04] <jose> lazyPower: do you have a link for it?
[15:05] <lazyPower> https://launchpad.net/~brightbox/+archive/ruby-ng
[15:05] <lazyPower> make sure you update the readme that it's using a PPA if you go that route
[15:05] <jose> will do, thank you
[15:05] <lazyPower> gah it looks like they haven't updated the ppa with trusty support
[15:06] <lazyPower> >.> stinking ppa's
[15:06] <lazyPower> oh wait, they have. disregard
[15:06] <jose> :P
[15:06] <jose> backports ftw
[15:13] <lazyPower> jose: is this consistent with what you've seen? http://paste.ubuntu.com/7405034/
[15:13] <jose> correct, sit
[15:14] <jose> sir*
[15:18] <lazyPower> tvansteenburgh1: have you seen this? http://paste.ubuntu.com/7405034/
[15:21] <tvansteenburgh1> lazyPower: i have now
[15:21] <jose> :P
[15:22] <lazyPower> tvansteenburgh: gnarly. i'm thinking its choking whenb uilding the deployment map
[15:23] <tvansteenburgh> lazyPower: are there non-ascii chars in the metadata.yaml?
[15:23]  * jose checks
[15:23] <lazyPower> tvansteenburgh: amulet is wiping the yaml before i can check it
[15:24] <jose> tvansteenburgh: there is, yes, an é
[15:24] <jose> a unicode é
[15:24] <lazyPower> jose: wait... wat
[15:24] <lazyPower> OH, in your name
[15:24] <lazyPower> in the metadata
[15:24] <jose> yeah
[15:24] <lazyPower> jose: i'm changing your name, you will now be known as: 'charmbot 5000'
[15:24] <tvansteenburgh> jose, lazyPower: if you wanna file a bug i'll fix it
[15:25]  * lazyPower points jose to the bug tracker so his name can stay in teh yaml
[15:25] <jose> tvansteenburgh: against what? amulet?
[15:25] <lazyPower> :P
[15:25] <tvansteenburgh> but for now the quick path forward is to change jose's name :P
[15:25] <tvansteenburgh> jose: amulet, yes
[15:25] <jose> Jose Antonio Rey or CharmBot 5000 will work :P
[15:25]  * jose goes and files the bug
[15:27] <jose> tvansteenburgh: bug 1316656
[15:28] <tvansteenburgh> jose: thanks
[15:28] <jose> bug #1316656
[15:28] <jose> _mup_ START WORKING!
[15:28] <jose> _mup_: ping
[15:28] <lazyPower> jose: paste the url to the bug
[15:29] <jose> the URL for the pastebin?
[15:29] <lazyPower> nope, bug
[15:29] <jose> https://bugs.launchpad.net/amulet/+bug/1316656
[15:29] <lazyPower> yep he's borked
[15:29]  * jose gives _mup_ a revive cookie
[15:31] <lazyPower> tvansteenburgh: looks like amulet syntax changed with a MP 11 days ago.
[15:31] <lazyPower> whats the new and improved way to target units in amulet?
[15:32] <tvansteenburgh> lazyPower: i dunno anything about that.
[15:32] <jose> marcoceppi_ is the amulet master
[15:32] <jose> according to LP
[15:32] <tvansteenburgh> lazyPower: i submitted and MP to make d.add_unit() work properly
[15:32] <lazyPower> jose: i'm aware but tvansteenburgh did some edits to this.
[15:32] <lazyPower> https://github.com/marcoceppi/amulet/commits/master/amulet/sentry.py
[15:32] <jose> oh got it
[15:33] <lazyPower> which means we just broke a ton of tests we had written
[15:33] <lazyPower> unless this test was wrong to begin with
[15:33] <tvansteenburgh> lazyPower: my commits just fix a bug with add_unit()
[15:33] <lazyPower> tvansteenburgh: too late, i git-blamed you
[15:33] <lazyPower> :P
[15:33] <tvansteenburgh> lol
[15:33] <lazyPower> <3
[15:35] <jose> urgh, I give up with tracks
[15:35]  * jose hates Ruby
[15:35] <jose> cory_fu: after updating to 2.1 or 1.9.3 it gives a redcloth error
[15:35] <jose> not sure what that is
[15:36] <lazyPower> jose: a gem
[15:36] <lazyPower> its a markdown generator by github
[15:36] <lazyPower> s/generator/interpreter/
[15:36] <jose> when trying to install it it gives ANOTHER error
[15:36] <lazyPower> whats the error?
[15:36] <jose> ERROR: Failed to build gem native extension.
[15:36] <lazyPower> do you have build-essential installed?
[15:37] <jose> yes
[15:37] <lazyPower> pastebin me the full trace
[15:38] <jose> http://paste.ubuntu.com/7405198/
[15:39] <lazyPower> jose: you need to install the ruby-dev package for the flavor you installed
[15:39] <lazyPower> its looking for headers that are non existant
[15:39] <jose> blargh, thank you
[15:40]  * jose still hates ruby and ruby on rails
[15:40] <jose> don't even mention ruby on trains
[15:40] <lazyPower> it's really not *that* bad
[15:40] <lazyPower> but i'll let you continue to hate @ it.
[15:41] <jose> same error after installing -dev
[15:42] <jose> oh, it was 1.9.1-dev
[15:42] <jose> w0ot, works!
[15:43] <cory_fu> Awesome
[15:43] <jose> tracks... not yet :P
[15:43] <jose> still installing!
[15:43] <cory_fu> Aw
[15:49] <lazyPower> OH
[15:49] <lazyPower> man, i missed line 26, jose
[15:49] <lazyPower> you cant get information from the unit before its deployed
[15:49] <lazyPower> thats why the sentry.unit.info object isn't working
[15:49] <lazyPower> there's no API server/sentry deployed until d.setup() is called
[15:50]  * tvansteenburgh is exonerated
[15:50] <jose> that's what I was telling you
[15:50] <lazyPower> jose: @!%@#^#@
[15:50] <jose> those lines need to be moved *after* d.setup()
[15:50] <jose> I knew that
[15:50] <lazyPower> why you do this to me?!
[15:50] <jose> :P
[15:50]  * marcoceppi_ considers better error messaging
[15:51] <jose> ERROR: Jose didn't mention that lines had to be moved. RESULT:  ✘
[15:52]  * lazyPower hugs jose with a bat
[15:52]  * lazyPower repeatedly
[15:52] <lazyPower> :P
[15:52] <lazyPower> naw, you're good i missed that
[15:52] <lazyPower> you did tell me to move stuff
[15:52] <lazyPower> so, with that in mind - we need to set the domain post deployment
[15:53] <jose> correct
[15:53] <jose> I'll try the tests with my name without the é after I'm done with this tracks stuff
[15:53] <jose> *almost* done
[15:53] <lazyPower> jose: that part works
[15:53] <jose> which part?
[15:53] <lazyPower> i'm looking at the amulet stuff to remind myself how to set config post deployment
[15:53] <lazyPower> removing the e
[15:53] <lazyPower> unicode, e
[15:54] <jose> oh, it's not d.configure?
[15:55] <lazyPower> i'm pretty sure that was patched to support post deploymetn configuration with the 1.4 series
[15:55] <lazyPower> but i dont remember. i'm fishing up teh bug
[15:55] <jose> ok!
[15:56] <lazyPower> https://bugs.launchpad.net/amulet/+bug/1270174
[15:56] <_mup_> Bug #1270174: Post deployment commands <Amulet:Fix Released by marcoceppi> <https://launchpad.net/bugs/1270174>
[15:56] <lazyPower> wb mup
[15:57] <jose> \o/
[15:58] <jose> lazyPower: w0ot, another ruby error! http://paste.ubuntu.com/7405288/
[15:58] <jose> even after the gem is installed
[15:59] <lazyPower> jose: the bundle is missing the mysql2 gem
[15:59] <lazyPower> thats an old school ruby error
[16:00] <jose> but it did install it...
[16:00] <jose> ooh
[16:01] <lazyPower> its that or the db configuration file is referencing the mysql gem syntax, and should be updated either/or
[16:01] <jose> boom, found the error
[16:01] <jose> (or at least I think so)
[16:03] <lazyPower> jose: it occurs to me, you're setting the domain to the public ip of the unit. DOesn't the charm do this when no configuration is specified for domain?
[16:03] <lazyPower> default to looking up the public-address and actioning with that?
[16:03] <jose> lazyPower: it doesn't
[16:04] <lazyPower> should probably do that, as it's a 'sane default' practice.
[16:04] <jose> what happens if it's behind haproxy?
[16:04] <lazyPower> it should relation-set public-address in the relationship-changed hook
[16:05] <lazyPower> and haproxy will take care of the domain mapping
[16:05] <jose> huh?
[16:05] <lazyPower> jose: try it and see :P
[16:06] <jose> will do... once I finish with this ruby thing :P
[16:06]  * jose is getting bored of errors
[16:17] <jose> is there a way to manually enter a hook environment when doing `juju ssh unit/#`?
[16:21] <lazyPower> sinzui: good catch on https://bugs.launchpad.net/charms/+source/elasticsearch/+bug/1294202
[16:21] <_mup_> Bug #1294202: reused cluster names break services. <canonical-is> <charmworld> <elasticsearch (Juju Charms Collection):New> <https://launchpad.net/bugs/1294202>
[16:23] <sinzui> lazyPower, I look forward to the day I am not invited to diagnose why elasticsearch has wandered off with a index
[16:23] <lazyPower> sinzui: it's on the horizon
[16:23] <lazyPower> this new rev of the charm from mnelson is shaping up to be pretty solid
[16:29] <jose> cory_fu: mind a PM?
[16:29] <cory_fu> jose: Why not just use juju debug-hooks?
[16:29] <cory_fu> No problem, PM away
[16:30] <jose> yeah, I do that and call an empty 'juju set' :P
[16:30] <jose> oh, nvm
[16:30] <jose> still having an error :P
[16:38] <lazyPower> jose: rm'ing the unicode e, and moving the d.configure line below d.setup appears to have resolved the test issue. I'm re-running it a second time with -v to ensure i didn't miss something.
[16:39] <jose> lazyPower: ack, will test too after committing these changes - tracks looks to be on track now
[16:40] <lazyPower> glad we got it sorted :)
[16:40] <lazyPower> hi5
[16:42] <jose> o/
[16:44] <jose> hang on with that tracks review if anyone is doing it - needs an upstart job written and I'm working on it
[17:16] <jose> and tracks is *really* good to go now
[17:35] <jose> lazyPower: juju-test.conductor.100_deploy.test RESULT  : ↷ (⌛)
[18:04] <magicrobotmonkey> is the nova-compute charm supposed to have networking working out of the box
[18:05] <cory_fu> jose: The tracks charm now deploys fine for me, but the process seems to die and isn't listening on port 80.  Do you happen to know if tracks has a log file somewhere (not seeing it in /var/log)
[18:06] <cory_fu> oh, I see it in /var/log/upstart
[18:06] <jose> yeah
[18:06] <jose> otherwise, /var/log/juju/agents/unit-tracks-0/charm/tracks/log
[18:06] <cory_fu> Could not locate Gemfile
[18:06] <cory_fu> Hrm
[18:06] <jose> ooooh
[18:06] <jose> know that error
[18:06] <jose> looks like the upstart job isn't into the directory, but let me find a solution for this and push it
[18:07] <jose> cory_fu: my bad, copied the job from another charm and didn't change the directory
[18:08] <cory_fu> :)
[18:08] <jose> awesome, now my pointer isn't working
[18:08] <cory_fu> o_O
[18:09] <jose> haha
[18:10] <jose> will $JUJU_UNIT_NAME give me the name of the current machine in the format of unit/#?
[18:11] <cory_fu> In the upstart job, or in a hook?
[18:13] <cory_fu> I think that it will have the format name/# in the charm hooks, but it won't be available in the upstart job
[18:14] <cory_fu> Oh, but you're generating the upstart conf, so you can replace it there
[18:14] <jose> yeah
[18:14] <jose> I'll see how can I awk that
[18:14]  * jose quickly grabs lunch
[18:18] <cory_fu> jose: ping me whenever you get back, please
[18:18] <jose> will do
[18:18] <cory_fu> Thanks.  Enjoy lunch.  :-)
[18:18] <jose> thanks :)
[18:26] <jose> cory_fu: back now!
[18:27] <cory_fu> Hey.
[18:27] <cory_fu> So, what were you saying about needing to awk the $JUJU_UNIT_NAME?
[18:28] <jose> so, if you check the upstart job, it cd's into the folder where tracks has been cloned
[18:28] <cory_fu> Also, I noticed that this charm is installing tracks under the $CHARM_DIR (by dint of not changing the directory in the install hook), which I'm pretty sure is a bad practice
[18:28] <jose> that was what I was talking about
[18:28] <jose> I can surely move it to ~/tracks, if that's better
[18:30] <cory_fu> Yeah, it should definitely be moved outside of the charm dir.  What user does tracks run as?  Just root?
[18:30] <jose> yes
[18:30] <jose> which I think is a bad practice too?
[18:32] <cory_fu> It's not ideal, but I probably wouldn't ding it for doing so.
[18:33] <cory_fu> Some packages a harder to get running as non-root, but if you feel like trying, it would be better to have a tracks user
[18:34] <jose> I'll try
[18:34] <cory_fu> I think it should be just useradd -r tracks and then chmod -R tracks tracks
[18:34] <cory_fu> er, chown -R tracks tracks
[18:35] <cory_fu> lazyPower: What would be the best place for it to live, outside of the charm dir?  /var/local/tracks?  /home/ubuntu/tracks?  /home/tracks/tracks?
[18:36]  * lazyPower reads
[18:36] <lazyPower> cory_fu: if its getting an application user, its acceptable to put it in $HOME
[18:36] <lazyPower> otherwise you're doing chown magic in /var/www, or adding them to a system group
[18:37] <cory_fu> Ok, in that case, jose, you'd need -m or maybe not make the tracks user a system user
[18:37] <lazyPower> use your best judgement with the application when it comes to that placement. but in practice i used $HOME for each app.
[18:37] <jose> well, I'll try and do something that... works
[18:58] <hackedbellini> hi. I have a postgresql unit in production. I made some changes on the charm which I need on that running unit. I'm trying to change the tracking branch for the service from the launchpad one to my local one (my local one is a fork of the launchpad one)
[18:58] <hackedbellini> jose yesterday give me some tips, like trying to deploy my local charm with another service name and rename the unit, but I have no idea on how to rename that unit.
[18:58] <hackedbellini> do anyone here knows what can I do? Is there an easy way to do that? Or to use jose's tip, how can I rename the unit?
[18:58] <hackedbellini> note that it's in production, so I cant just destroy the unit and deploy another one
[18:58] <jose> you cannot rename a unit
[18:59] <jose> oh, assign another name to a unit
[18:59] <jose> just append the unit name
[18:59] <hackedbellini> jose: hrm, probably I misunderstood what you told yestarday. What do you mean by "append the unit name"?
[19:00] <jose> like `juju deploy --repository=charms local:postgresql psql` will give the service the name psql instead of the one in the metadata
[19:00] <jose> if you do `juju deploy --repository=charms local:postgresql` it will deploy it with the name postgresql
[19:02] <hackedbellini> yes it will. But I don't want a new unit... I want to change the service for the already existing unit
[19:02] <hackedbellini> like I said, it's running in production already and changing units is not an option atm :(
[19:03] <cory_fu> I don't think you can change the name after the fact, because it would cause issues for the relations
[19:03] <hackedbellini> cory_fu: I could put it in the same name, no problem. I just want to change the tracking branch of the service
[19:03] <hackedbellini> like, when running 'juju upgrade-charm postgresql' it would pull from my local branch instead of the launchpad one
[19:14] <cory_fu> Hrm.  marcoceppi, do you know if such a thing is possible?  ^
[19:14] <cory_fu> Seems like it would be difficult, at best.
[19:15] <marcoceppi> hackedbellini: yes, you can switch the source of the charm
[19:15] <marcoceppi> it's not recommended but if you wanted to fork the charm locally and upgrade from the local source you can do so with the switch flag
[19:16] <cory_fu> switch flag?  I don't see that in juju help deploy
[19:16] <marcoceppi> juju upgrade-charm --switch --repository /path/to/local/charm-repo postgresql
[19:16] <marcoceppi> cory_fu: it's an upgrade-charm command
[19:16] <cory_fu> Oh, because it would be in upgrade-charm, of course
[19:16] <marcoceppi> it's VERY heavy handed
[19:16] <hackedbellini> marcoceppi: wow, thank you so much! You are a life savior!
[19:16] <cory_fu> How so, is it heavy-handed?
[19:17] <marcoceppi> you have the ability to even change the charm running, like juju upgrade-charm switch to mysql from postgresql, etc, which would probably break everything
[19:17] <marcoceppi> switch is basically like the --to flag, use carefully
[19:17] <lazyPower> *hulk repository smash
[21:12] <thumper> jcastro, marcoceppi: can you guys chat for a minute?
[21:12] <thumper> I have some questions and news
[21:12] <marcoceppi> thumper: I can
[21:13] <thumper> marcoceppi: https://plus.google.com/hangouts/_/gwdavp7sezmqkxxb5sfhp5ivdia?hl=en
[21:19] <cory_fu> jose: Did moving the chdir to outside of the pre-start / start stanzas fix it?
[21:19] <jose> I can't tell, because when I do 'start tracksapp' or 'stop tracksapp' it just hangs there
[21:20] <jose> I ^c and if I try it again, it says it's already started/stopped
[21:20] <cory_fu> Yeah, I think that's because of the expect fork, that I was mentioning.  I think it's sitting there waiting for the app to fork, which it never does
[21:20] <jose> I also deleted it
[21:21] <cory_fu> Deleted the upstart job?  Or the service?
[21:21] <jose> the line :P
[21:21] <jose> expect for
[21:21] <jose> k
[21:21] <cory_fu> Oh, I see
[21:21] <jose> still hangs
[21:22] <cory_fu> Can you send a pastebin of your current upstart job?
[21:23] <jose> http://paste.ubuntu.com/7406987/
[21:24] <cory_fu> Did you change the install hook to move the tracks app to /home/ubuntu/tracks or /home/tracks/tracks?
[21:25] <jose> /home/ubuntu/tracks/
[21:25] <jose> (though I should change it to /tracks/tracks/
[21:27] <cory_fu> Hrm.  Seems fine to me.  Maybe someone with more experience with upstart could glance at it?
[21:28] <cory_fu> Someone like lazyPower, perhaps?
[21:28] <sarnold> is 'bundle' in the path at that point?
[21:28] <jose> it is to be ran there
[21:29] <jose> it's a ruby program
[21:37] <cory_fu> jose:  Permission denied @ dir_s_mkdir - /home/tracks/tracks/tmp/cache
[21:38] <cory_fu> Oh, I forgot to chown
[21:38] <cory_fu> Or, no, the tmp dir didn't get chowned.
[21:40] <cory_fu> Oh.  It's trying to bind to port 80 which is restricted.
[21:41] <cory_fu> I think tracks might have to be run as root.  :/
[21:52] <thumper> marcoceppi: DUDE!!!
[21:52] <thumper> just had a great thought
[21:52] <thumper> go and register juju.academy
[21:53] <marcoceppi> thumper: dude, already did :)
[21:53] <thumper> ha, awesome
[21:53] <marcoceppi> it should map to learnjuju.com
[21:54] <thumper> I read last night that there exists fart.academy
[21:54] <thumper> :)
[21:54] <marcoceppi> hahah
[21:54] <thumper> perhaps juju.academy should be the master...
[21:55] <marcoceppi> thumper: it's been updated
[21:56] <marcoceppi> both juju.academy and learnjuju.com now are the same source
[21:56] <marcoceppi> thumper: it was always designed to be, the links all point to juju.academy
[21:56] <marcoceppi> etc
[21:56] <thumper> awesome
[21:56] <thumper> I should have remembered that
[21:56] <thumper> I won't forget again
[21:56] <marcoceppi> \o/
[22:57] <lazyPower> cory_fu: never ever run a rails app as root
[22:58] <lazyPower> *never*
[22:58] <lazyPower> its a death sentence for system security
[23:16] <jose> cory_fu: sorry, my connection died as it upgraded ffom 200KBps to 400KBps
[23:19] <jose> marcoceppi: found a 'typo' (not sure if it's intentional)
[23:42] <jose> lazyPower: the only way to run under port 80 is to run as root, right?
[23:42] <jose> or I'm missing something
[23:44] <sarnold> jose: I believe you can get the same effect by using setcap to add CAP_NET_BIND_SERVICE to your executable. it's like a mini-setuid progam, and it would probably be best to drop the capability once the socket has been bound.
[23:46] <jose> sarnold: thanks, I'm looking into it
[23:47] <jose> hmm, but how could I add it to a filename?
[23:51] <sarnold> jose: try setcap cap_net_bind_service jose_executable
[23:51] <jose> I mean, in my context
[23:52] <jose> I'm trying to run a service
[23:52] <jose> not sure what executable it runs
[23:52] <sarnold> oh I thought you had that :) sorry
[23:52] <jose> no prob :)