Visto che l’installazione di Ansible su OsX non è stata delle più agevoli, cerchiamo di fare un recap dei passi necessari.
Innanzitutto dovrete installare XCode CLI (Command Line Interface).
No, Xcode da solo non basta, se non siete sicuri se lo avete già installato o meno potete sfruttare il seguente comando per verificarne la presenza:
$ pkgutil –pkg-info=com.apple.pkg.DeveloperToolsCLI
package-
id
: com.apple.pkg.DeveloperToolsCLI
version: 4.6.0.0.1.1365549073
volume: /
location: /
install
-
time
: 1370983764
groups
: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group
Qualora invece non fosse presente, provvedete al download e all’installazione
Ora passiamo ad installare il Package Manage di Python, che ci permetterà di eseguire i passi successivi più agevolmente:
sudo
easy_install pip
E utilizziamolo subito per installare le dipendenze dirette e ansible stesso:
sudo
pip
install
paramiko PyYAML jinja2
sudo
pip
install
ansible
$ ansible
Usage: ansible <host-pattern> [options]
Options:
-a MODULE_ARGS, --args=MODULE_ARGS
module arguments
-k, --ask-pass ask
for
SSH password
-K, --ask-
sudo
-pass ask
for
sudo
password
-B SECONDS, --background=SECONDS
run asynchronously, failing after X seconds
(default=N
/A
)
-C, --check don't
make
any changes; instead, try to predict some
of the changes that may occur
-c CONNECTION, --connection=CONNECTION
connection
type
to use (default=smart)
-f FORKS, --forks=FORKS
specify number of parallel processes to use
(default=5)
-h, --help show this help message and
exit
-i INVENTORY, --inventory-
file
=INVENTORY
specify inventory host
file
(default=
/etc/ansible/hosts
)
-l SUBSET, --limit=SUBSET
further limit selected hosts to an additional pattern
--list-hosts outputs a list of matching hosts; does not execute
anything
else
-m MODULE_NAME, --module-name=MODULE_NAME
module name to execute (default=
command
)
-M MODULE_PATH, --module-path=MODULE_PATH
specify path(s) to module library
(default=
/usr/share/ansible/
)
-o, --one-line condense output
-P POLL_INTERVAL, --poll=POLL_INTERVAL
set
the poll interval
if
using -B (default=15)
--private-key=PRIVATE_KEY_FILE
use this
file
to authenticate the connection
-s, --
sudo
run operations with
sudo
(nopasswd)
-U SUDO_USER, --
sudo
-user=SUDO_USER
desired
sudo
user (default=root)
-T TIMEOUT, --timeout=TIMEOUT
override the SSH timeout
in
seconds (default=10)
-t TREE, --tree=TREE log output to this directory
-u REMOTE_USER, --user=REMOTE_USER
connect as this user (default=msacchetti)
-
v
, --verbose verbose mode (-vvv
for
more
, -vvvv to
enable
connection debugging)
--version show program's version number and
exit
$ ansible --version
ansible 1.3.2
locate
mysql_config
/usr/local/mysql-5
.5.32-osx10.6-x86_64
/bin/mysql_config
export
PATH=$PATH:
/usr/bin
:
/bin
:
/usr/sbin
:
/sbin
:
/usr/local/bin
:
/opt/local/bin
:
/opt/local/sbin
:
/usr/local/mysql-5
.5.32-osx10.6-x86_64
/bin
$
sudo
ln
-s
/usr/local/mysql-5
.5.32-osx10.6-x86_64
/lib/libmysqlclient
.18.dylib
/usr/lib/libmysqlclient
.18.dylib
$
sudo
ln
-s
/usr/local/mysql-5
.5.32-osx10.6-x86_64
/bin/mysql
/usr/bin/mysql
$
sudo
ln
-s
/usr/local/mysql-5
.5.32-osx10.6-x86_64
/bin/mysqldump
/usr/bin/mysqldump
A questo punto tutto dovrebbe finalmente essere al suo posto, installiamo quindi l’agognato modulo:
sudo
pip
install
MySQL-python