saltstack/salt — Issue #594: TypeError when starting salt-minion on debian 5.0.3 ARM arch
Author: lowinger42
Created: 2012-01-28 00:11:13+00:00
State: open

I've have successfully installed salt on ubuntu 11.10 arm64, one is minion and the other is master and communication between these works great.

I have a bunch of guruplugs, which are running debian 5.0.3 on an ARM architecture. Salt is installed according to this:

Python 2.6.6
part of base os

ZeroMQ >= 2.1.9
aptitude install build-essential
aptitude install uuid-dev

wget http://download.zeromq.org/zeromq-2.1.11.tar.gz

tar xvzf zeromq-2.1.11.tar.gz
cd zeromq-2.1.11
./configure
make
make install
make clean # remove all temp files
ldconfig

pyzmq >= 2.1.9 — ZeroMQ Python bindings
easy_install pyzmq

M2Crypto — Python OpenSSL wrapper
aptitude install swig
easy_install m2crypto

PyCrypto — The Python cryptography toolkit
easy_install pycrypto

YAML — Python YAML bindings
apt-get install python-yaml

salt
aptitude install python-dev

download salt from https://github.com/downloads/saltstack/salt/salt-0.9.6.tar.gz

tar xvf salt-0.9.6.tar.gz
cd salt-0.9.6
python2 setup.py install

probe1:~# python
Python 2.6.6 (r266:84292, Dec 27 2010, 21:57:32)
>>> import zmq
>>> zmq.pyzmq_version()
'2.1.11'
>>> zmq.zmq_version()
'2.1.11'
>>> import salt
>>> salt.__version__
'0.9.6'

Edited the /etc/salt/minion file, only changing where the master is. So it has the same config as the minion running on ubuntu arm64.

probe1:~# salt-minion --log-level=debug
01:08:17,849 [salt.loader ][DEBUG ] Failed to import module virt, this is most likely NOT a problem: No module named libvirt
01:08:17,910 [salt.loader ][DEBUG ] Failed to import module mysql, this is most likely NOT a problem: No module named MySQLdb
01:08:17,916 [salt.loader ][DEBUG ] Failed to import module ps, this is most likely NOT a problem: No module named psutil
01:08:17,963 [salt.loader ][DEBUG ] Failed to import module yumpkg, this is most likely NOT a problem: No module named yum
01:08:18,305 [salt.loader ][DEBUG ] Failed to import module mongo_return, this is most likely NOT a problem: No module named pymongo
01:08:18,308 [salt.loader ][DEBUG ] Failed to import module redis_return, this is most likely NOT a problem: No module named redis
01:08:18,311 [salt.loader ][DEBUG ] Failed to import module cassandra_return, this is most likely NOT a problem: No module named pycassa
01:08:18,313 [salt.minion ][WARNING ] Starting the Salt Minion
01:08:18,315 [salt.minion ][DEBUG ] Attempting to authenticate with the Salt Master
01:08:18,319 [salt.crypt ][INFO ] Generating minion key: /etc/salt/pki/minion.pem
.......................................................................++
...............................................................................................................................++
Traceback (most recent call last):
File "/usr/local/bin/salt-minion", line 18, in
main()
File "/usr/local/bin/salt-minion", line 15, in main
minion.start()
File "/usr/local/lib/python2.6/dist-packages/salt/__init__.py", line 229, in start
minion = salt.minion.Minion(self.opts)
File "/usr/local/lib/python2.6/dist-packages/salt/minion.py", line 88, in __init__
self.authenticate()
File "/usr/local/lib/python2.6/dist-packages/salt/minion.py", line 344, in authenticate
creds = auth.sign_in()
File "/usr/local/lib/python2.6/dist-packages/salt/crypt.py", line 216, in sign_in
if not self.verify_master(payload['pub_key'], payload['token']):
TypeError: string indices must be integers, not str

I have --log-level=debug on the master but there is no output so I guess the minion does not go so far as trying to communicate with it.

Not sure what to do next to solve this issue.