IM(not so H)O, wrestling with Mac is not worth anyone's time. Using Vagrant or a similar VM setup will get you in an environment much more like "production" and with fewer headaches caused by mac's special snowflake OS.
(I personally use Mac as my host OS, because I love it, except when it comes to installing server software).
I've tried Ansible and Puppet, but I just never could get used to them or like them. I like the shell provisioner because I know EXACTLY what it's doing. I can provision a server myself, I have the knowledge and understanding to. I can type up the commands in a bash script to provision it faster than I could learn exactly what Ansible or Puppet or Chef are doing when I tell it to install Nginx.
I get completely where you are coming from, the reason that I eventually got the hang of Ansible is because if you do it right (I mean using ansible's modules over scripts/commands) it adds the ability to rerun your ansible playbooks (think of them like those bash scripts) multiple times on the same cluster/node/server without worrying something will change because you run them more than once. Also bash on it's own has no templating feature, or easy way to check if something has already happend. And after a while the whole systems starts making sense.
I can only imagine your current bash-scripts are awesome and do tons of stuff for you, but I'd really like to suggest you give ansible another go, and ignore the different files for roles/vars/tasks in the beginning, just dump everything into one playbook, like your bash scripts do currently.
I am using homebrew but it definitely wasn't that simple. I think it was because my OSX (for some reason) wasn't using the right PHP version and so installing mcrypt from homebrew didn't have any effect until I reconfigured apache.
Comments
Annoyingly I just set up a Laravel install for evaluation on OSX and wrestled with getting mcrypt to work!
IM(not so H)O, wrestling with Mac is not worth anyone's time. Using Vagrant or a similar VM setup will get you in an environment much more like "production" and with fewer headaches caused by mac's special snowflake OS.
(I personally use Mac as my host OS, because I love it, except when it comes to installing server software).
Chris, I agree with you completely. I also suggest this beaut: https://github.com/fideloper/Vaprobash wink wink, hint hint.
An idempotent provisioner would be a better option. Ansible is my favorite.
I've tried Ansible and Puppet, but I just never could get used to them or like them. I like the shell provisioner because I know EXACTLY what it's doing. I can provision a server myself, I have the knowledge and understanding to. I can type up the commands in a bash script to provision it faster than I could learn exactly what Ansible or Puppet or Chef are doing when I tell it to install Nginx.
I get completely where you are coming from, the reason that I eventually got the hang of Ansible is because if you do it right (I mean using ansible's modules over scripts/commands) it adds the ability to rerun your ansible playbooks (think of them like those bash scripts) multiple times on the same cluster/node/server without worrying something will change because you run them more than once. Also bash on it's own has no templating feature, or easy way to check if something has already happend. And after a while the whole systems starts making sense.
I can only imagine your current bash-scripts are awesome and do tons of stuff for you, but I'd really like to suggest you give ansible another go, and ignore the different files for roles/vars/tasks in the beginning, just dump everything into one playbook, like your bash scripts do currently.
I've made that too: https://github.com/vagrant-ops/vagrantops (although work in progress, and I have some sneaky/evil/delicious plans for it)
Sorry to hear that.
If mcrypt is such a pain for OSX users, I might offer to refactor some other frameworks' libraries to use openssl in the near future.
Why mcrypt sucks: https://paragonie.com/blog/2015/05/if-you-re-typing-word-mcr...
It's not, if you're using Homebrew (which you should be). `brew install php56-mcrypt` and you're done.
I am using homebrew but it definitely wasn't that simple. I think it was because my OSX (for some reason) wasn't using the right PHP version and so installing mcrypt from homebrew didn't have any effect until I reconfigured apache.