work around environment problems in sudo mode

1. work around [environment problems in sudo mode](https://groups.google.com/forum/#!topic/ansible-project/rKHzovQYSLY), by add a sudo_preexec hook and run source command in it by default, this hook can do any other things.
2. host-patterns like ~cache0[1-9], should regard as a full regex-string, not range(~cache0[1:9])