Network aliases required for CCM -------------------------------- CCM needs a local ip address for each Cassandra node it creates. By default CCM assumes each node's ip address is 127.0.0.x, where x is the node id. For example if you populated your cluster with 3 nodes, create interfaces for 127.0.0.2 and 127.0.0.3 (the first node of course uses 127.0.0.1). Relevant CCM logs: * Missing an alias: ``` (...) Inet address 127.0.0.2:9042 is not available; a cluster may already be running or you may need to add the loopback alias ``` * Another node is already using a specific alias: ``` (...) Inet address 127.0.0.2:9042 is not available: [Errno 48] Address already in use ``` Mac OSX temporary network aliases --------------------------------- To get up and running right now, create a temporary alias for every node except the first: ``` sudo ifconfig lo0 alias 127.0.0.2 sudo ifconfig lo0 alias 127.0.0.3 ``` Note that these aliases are only temporary and will disappear on reboot. Mac OSX persistent network aliases ---------------------------------- Persist network aliases if you use CCM often or so infrequently you forget this step. To persist a network alias on Mac OSX you need to create a RunAtLoad launch daemon which OSX automatically loads on startup. For example: Create a shell script: ``` sudo vim /Library/LaunchDaemons/com.ccm.lo0.alias.sh ``` Contents of the script: ``` #!/bin/sh sudo /sbin/ifconfig lo0 alias 127.0.0.2; sudo /sbin/ifconfig lo0 alias 127.0.0.3; ``` Set access of the script: ``` sudo chmod 755 /Library/LaunchDaemons/com.ccm.lo0.alias.sh ``` Create a plist to launch the script: ``` sudo vim /Library/LaunchDaemons/com.ccm.lo0.alias.plist ``` Contents of the plist: ``` Label com.ccm.lo0.alias RunAtLoad ProgramArguments /Library/LaunchDaemons/com.ccm.lo0.alias.sh StandardErrorPath /var/log/loopback-alias.log StandardOutPath /var/log/loopback-alias.log ``` Set access of the plist: ``` sudo chmod 0644 /Library/LaunchDaemons/com.ccm.lo0.alias.plist sudo chown root:staff /Library/LaunchDaemons/com.ccm.lo0.alias.plist ``` Launch the daemon now. OSX will automatically reload it on startup. ``` sudo launchctl load /Library/LaunchDaemons/com.ccm.lo0.alias.plist ``` Verify you can ping 127.0.0.2 and 127.0.0.3. If you ever want to permanently kill the daemon, simply delete its plist from /Library/LaunchDaemons/.