之前配置挖矿主机太丫累了,虽说可以使用脚本跑,但还是太麻烦了;刚好最近在研究使用Ansible测试部署了10台,测试通过,如果要部署操控几百上千台机器必须优化Ansible,以下是操作思路和脚本:
部署环境:Ubuntu 16+ Python 2.7+
master:192.168.1.8
node1: 192.168.1.9
node2: 192.168.10
批量分发秘钥
首先在主控端master上生成秘钥,使用命令:ssh-Keygen,把公钥放在云控制面板设置或者用免交互脚本批量分发。
安装配置Ansible
apt-get install software-properties-common apt-add-repository ppa:ansible/ansible apt-get update apt-get install ansible -y
更改ansible配置文件,合理加大fork数,取消host_key注释,免首次登陆yes确认。
fork=30 host_key_checking = False
编辑hosts文件,将控制主机ip加入其中
[wk] 192.168.1.9 192.168.1.10
Ubuntu16中自带安装的是Python3+,而Ansible默认使用的是Python2.7+, 所以如果要使用系统默认的Python3,需要再hosts文件当中加入:
[web] xxx.xx.xxx.xx [web:vars] ansible_python_interpreter=/usr/bin/python3
我使用的是Python2.7+,可以使用Ansible的raw模块批量安装:
ansible all -m raw -a "apt-get install python -y" #测试主机连通性 ansible all -m ping
执行本地脚本
ansible all -m script -a '/root/az.sh'
这时候等待一会,因为跑的脚本会新开一个screen窗口在远程主机安装部署程序后自动运行,新开一个shell窗口然后执行ansible all -m shell -a ‘screen -ls’ 查看窗口列表是否都正常处于激活状态,返回原shell窗口,Ctrl+c关闭ansible执行。
本地脚本:az.sh
#!/bin/bash #更新系统并安装依赖 apt-get update -y apt-get install -y libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev sc reen git nano htop#开启大内存和memlock sysctl -w vm.nr_hugepages=128 sed -i '1s/^/vm.nr_hugepages=128\n/' /etc/sysctl.conf echo '* soft memlock 262144' >> /etc/security/limits.conf echo '* hard memlock 262144' >> /etc/security/limits.conf #下载编译安装xmr-stak并修改捐赠比例 git clone https://github.com/fireice-uk/xmr-stak.git cd xmr-stak/ sed -i 's/2/0/g' xmrstak/donate-level.hpp cmake . -DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF make install cd bin/ wget http://159.89.36.71/config.txt wget http://159.89.36.71/cpu.txt wget http://159.89.36.71/pools.txt screen -S xmr -s ./xmr-stak