由于CentOS6上的GMP包版本,Ansible错误

我有一个Dockerfilebuild立一个基于CentOS的图像(标签: centos6 ):

 FROM centos RUN rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm RUN yum update -y RUN yum install ansible -y ADD ./ansible /home/root/ansible RUN cd /home/root/ansible;ansible-playbook -v -i hosts site.yml 

一切工作正常,直到Docker击中最后一行,然后我得到以下错误:

  [WARNING]: The version of gmp you have installed has a known issue regarding timing vulnerabilities when used with pycrypto. If possible, you should update it (ie. yum update gmp). PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** Traceback (most recent call last): File "/usr/bin/ansible-playbook", line 317, in <module> sys.exit(main(sys.argv[1:])) File "/usr/bin/ansible-playbook", line 257, in main pb.run() File "/usr/lib/python2.6/site-packages/ansible/playbook/__init__.py", line 319, in run if not self._run_play(play): File "/usr/lib/python2.6/site-packages/ansible/playbook/__init__.py", line 620, in _run_play self._do_setup_step(play) File "/usr/lib/python2.6/site-packages/ansible/playbook/__init__.py", line 565, in _do_setup_step accelerate_port=play.accelerate_port, File "/usr/lib/python2.6/site-packages/ansible/runner/__init__.py", line 204, in __init__ cmd = subprocess.Popen(['ssh','-o','ControlPersist'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__ errread, errwrite) File "/usr/lib64/python2.6/subprocess.py", line 1234, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory Stderr from the command: package epel-release-6-8.noarch is already installed 

我想这个错误的原因是gmp软件包不是最新的。 GitHub上有一个相关的问题: https : //github.com/ansible/ansible/issues/6941

但目前似乎没有任何解决scheme…任何想法? 提前致谢 !

我的site.yml手册:

 - hosts: all pre_tasks: - shell: echo 'hello' 

确保文件site.ymlhosts存在于要添加到/home/root/ansible site.yml的目录中。

注意,你可以通过使用WORKDIR来简化你的Dockerfile:

 WORKDIR /home/root/ansible RUN ansible-playbook -v -i hosts site.yml 

PyCrypto依赖于GMP,在更新pycrypto之后,警告会告诉你更新它(在你的主持人上)。

yum -y更新gmp pip install – 升级PyCrypto