Created
July 12, 2014 12:10
-
-
Save claws/57e66cbb4858cbd20b8e to your computer and use it in GitHub Desktop.
This gist shows a method for using Saltstack to automate the build and install of libsodium, libzmq, czmq and pyzmq. This state can be used to keep the ZMQ stack up to date.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Author: Chris Laws | |
# | |
# This saltstack state automates the build and install of the | |
# current version of the Github master branch for libsodium, | |
# libzmq, czmq and pyzmq (for both python2 and python3). | |
# | |
# This state is part of a suite of states I use to recreate my | |
# development machine and keep it up to date. It contains some | |
# configuration instructions that slightly beyond the common | |
# content in many saltstack examples and may be useful to someone | |
# else. | |
# | |
# | |
# This state depends on the normal build tools required to | |
# build and install the ZMQ stack such as build-essential, | |
# libtool, automake, autoconf, python2, python3, etc. These | |
# dependencies are not included in this state but could be | |
# constructed similar to this: | |
# | |
# build-tools-pkgs: | |
# pkg.installed: | |
# - names: | |
# - build-essential | |
# - libtool | |
# - automake | |
# - autoconf | |
# | |
# This state depends on the user 'saltuser' being present | |
# on the system and declared in the pillar's users state file. | |
# You can strip this dependency out - its just how my state | |
# setup is structured. | |
# | |
{% if 'saltuser' in pillar['users'] %} | |
project_directory: | |
file.directory: | |
- name: /srv/projects | |
- user: saltuser | |
- group: saltuser | |
- makedirs: True | |
- mode: 744 | |
https://github.com/jedisct1/libsodium: | |
git.latest: | |
- rev: master | |
- force: True | |
- target: /srv/projects/libsodium | |
- user: saltuser | |
- require: | |
- file: project_directory | |
cmd.wait: | |
- name: | | |
git clean -xdf | |
NPROCS=`grep -c ^processor /proc/cpuinfo` | |
./autogen.sh | |
./configure | |
make -j$NPROCS | |
make install | |
- cwd: /srv/projects/libsodium | |
- watch: | |
- git: https://github.com/jedisct1/libsodium | |
https://github.com/zeromq/libzmq: | |
git.latest: | |
- rev: master | |
- force: True | |
- target: /srv/projects/libzmq | |
- user: saltuser | |
- require: | |
- file: project_directory | |
cmd.wait: | |
- name: | | |
git clean -xdf | |
NPROCS=`grep -c ^processor /proc/cpuinfo` | |
./autogen.sh | |
./configure --with-pgm --with-libsodium | |
make -j$NPROCS | |
make install | |
- cwd: /srv/projects/libzmq | |
- watch: | |
- git: https://github.com/zeromq/libzmq | |
https://github.com/zeromq/czmq: | |
git.latest: | |
- rev: master | |
- force: True | |
- target: /srv/projects/czmq | |
- user: saltuser | |
- require: | |
- file: project_directory | |
cmd.wait: | |
- name: | | |
git clean -xdf | |
NPROCS=`grep -c ^processor /proc/cpuinfo` | |
./autogen.sh | |
./configure | |
make -j$NPROCS | |
make install | |
- cwd: /srv/projects/czmq | |
- watch: | |
- git: https://github.com/zeromq/czmq | |
# pyzmq depends on python and Cython. These are already installed | |
# as part of other states. | |
# | |
https://github.com/zeromq/pyzmq: | |
git.latest: | |
- rev: master | |
- force: True | |
- target: /srv/projects/pyzmq | |
- user: saltuser | |
- require: | |
- file: project_directory | |
cmd.wait: | |
- name: | | |
git clean -xdf | |
python setup.py configure --zmq=/usr/local | |
python setup.py install | |
git clean -xdf | |
python3 setup.py configure --zmq=/usr/local | |
python3 setup.py install | |
- env: | |
- LD_LIBRARY_PATH: /usr/local/lib | |
- cwd: /srv/projects/pyzmq | |
- watch: | |
- git: https://github.com/zeromq/pyzmq | |
{% endif %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment