I set up a private cloud on local following by https://juju.ubuntu.com/get-started/local/ and configured network followed by Running Juju on a local server (The difference is the IP address in my setup is 10.200.xx.xx rather than 192.168.x.x) However, after juju deploy and expose a charm,the charm state is always pending and public url is null....i don't know the root cause,can anyone tell me some prerequisites of setting up the juju on local, say, do i need to set up a DNS server on the host,etc? Thanks!
There are no other dependencies in order to use the local provider with juju. However there are some caveats and limitations.
By default, the local provider will use the lxcbr0 bridge that was created when you install lxc. This defaults to using the 10.0.3.0/24 address space. This means that each machine you create will have an ip address of 10.0.3.x. These lxc machines can only talk to each other, and out to the big wide world using the bridge.
However, no other machines can get in without you messing around with some routing configuration manually. If you don't know what you are doing there, I highly advise not to try.
The question that you refer to above is for the old version of Juju (< 1.0), and hopefully the docs now refer to the new juju (> 1.16). I'm talking about the new juju.
Exposing a service with the local provider does exactly nothing. You can see any service locally as there is no firewall service doing anything on the local provider, as its intended usage is to test and try juju and to help with writing charms.