Ansible 2.3 on Solaris 11.3
Let's automate some tasks we do all the time.
Yes I know, I could use Puppet, but the Puppet version bundled with Solaris 11.3 is rather old (3.6.2) and some modules are broken (e.g. "ldap provider always finds authentication_method out of sync (Bug 22166490)"). So we'll use Ansible instead.
$ wget http://releases.ansible.com/ansible/ansible-2.3.1.0.tar.gz # cd /opt # gzcat .../ansible-2.3.1.0.tar.gz | tar xf - # cat ansible-2.3.1.0/requirements.txt ... jinja2 PyYAML paramiko pycrypto >= 2.6 setuptools
Seems like we need some Python modules to get Ansible working. Let's install them.
# pkg install --no-backup-be jinja2 pyyaml setuptools
Packages to install: 22
...
We don't need paramiko and pycrypto (we'll use SSH instead), see Replace PyCrypto usage with cryptography.io #13075.
To speed things up we need an SSH client that supports ControlPersist. So let's install OpenSSH as well and make it the default.
# pkg install --no-backup-be network/openssh
Packages to install: 1
...
# pkg set-mediator --no-backup-be -I openssh ssh
Packages to change: 3
...
Does it work?
# PYTHONPATH=/opt/ansible-2.3.1.0/lib /opt/ansible-2.3.1.0/bin/ansible --version
ansible 2.3.1.0
config file =
configured module search path = Default w/o overrides
python version = 2.7.9 (default, Dec 1 2016, 10:32:39) [C]
# PYTHONPATH=/opt/ansible-2.3.1.0/lib /opt/ansible-2.3.1.0/bin/ansible localhost -m ping
[WARNING]: Host file not found: /etc/ansible/hosts
[WARNING]: provided hosts list is empty, only localhost is available
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
Good. Time to write our first Playbook...
No comments:
Post a Comment