设为首页 收藏本站
查看: 2090|回复: 0

[经验分享] centos6 安装 ansible

[复制链接]

尚未签到

发表于 2018-1-3 15:29:30 | 显示全部楼层 |阅读模式
  

安装过程其实并不复杂,只不过出现的问题,遇到的问题比较多,也主要参考网上https://github.com/alaxli/ansible_ui/issues/15 中提到的方法,只不过我遇到自己的问题,此处记录一下  

  一  首先环境是centos6.9 minal
  二  配置epel ,编辑文件 /etc/yum.repos.d/epel.repo ,内容为
  

[epel]  
name
=epel  
mirrorlist
=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch  
enabled=1
  
gpgcheck=0
  

  三 准备CentOS环境
  

yum update && yum upgrade  

  四 控制服务器与被管理服务器要求
  

Master:Python 2.6+  

Slave:Python 2.4+,最好也是2.6+(CentOS 6.9自带)  

  五 安装ansible :
  yum install ansible (如果提示没有此安装包,可以加入EPEL扩展包:yum install epel-release)
  六 生成公钥和秘钥
  使用命令ssh-keygen -t rsa 生成公钥私钥
  七 安装相关库
  

yum install -y gcc gcc-c++  
yum install -y git
  
yum install -y openldap-devel
  
yum install -y python-devel
  
yum install -y libffi-devel
  
yum install -y openssl-devel
  
yum install -y libjpeg-devel
  
yum install -y zlib-devel
  
yum install -y python-setuptools
  
yum install -y mysql-devel
  
yum install -y  sshpass
  

  

  八 pip,setuptools, 地址: https://bootstrap.pypa.io/
  a. 下载get-pip.py
  b.  python get-pip.py
  c. pip -V,显示安装成功  
  九 下载 2.7版本的python
  a. 下载python2.7.x 源码并上传至/home/ansible/python2.7     具体小版本我用x表示了。。
  b. tar -xf Python-2.7.x.tgz
  c. cd Python-2.7.x
  d. ./configure --prefix=/usr/local
  e. make && make install
  f. cd /usr/local/bin/
  g. ./python -V,  显示 Python 2.7.x
  十  使用virtualenv创建python2.7沙盒环境
  a. pip install virtualenv
  b. cd /home/ansible
  c. mkdir env
  d. virtualenv --python=python2.7 --no-site-packages env/
  e. source ./env/bin/activate
  f. deactivate
  十一 安装ansible_ui 及数据库配置
  1 获取 ansible_ui   :
  a.  cd /home/ansible/
  b.  git clone https://github.com/alaxli/ansible_ui.git
  2 启动 env环境
  a. cd /home/ansible/
  b. source ./env/bin/activate
  3 安装ansible_ui   (--使用pip 安装的时候不要使用sudo,否则会切换到python2.6的pip安装, 会导致安装过程中出现很多问题)
  pip install setuptools_scm
  pip install -r requirements.txt  (请看下面特别说明)
  pip install Pillow
  pip install ansible
  特别说明,安装包提供的requirements.txt 没有提供具体的版本,因此即使运行成功后,后面数据库也无法配置成功,此处贴出我可用的 requirements.txt 替换即可
  

amqp==1.4.9  
ansible==2.2.0.0
  
anyjson==0.3.3
  
billiard==3.3.0.23
  
celery==3.1.25
  
cffi==1.9.1
  
cryptography==1.7.1
  
Django==1.6
  
django-auth-ldap==1.2.8
  
django-celery==3.1.16
  
django-crispy-forms==1.4.0
  
django-guardian==1.3
  
django-jsonfield==1.0.1
  
django-multisite==1.3.1
  
django-widget-tweaks==1.4.1
  
enum34==1.1.6
  
idna==2.2
  
ipaddress==1.0.17
  
Jinja2==2.9.4
  
kombu==3.0.37
  
MarkupSafe==0.23
  
meld3==1.0.2
  
mongoengine==0.9.0
  
MySQL-python==1.2.5
  
olefile==0.44
  
paramiko==2.1.1
  
pexpect==4.2.1
  
Pillow==4.0.0
  
ptyprocess==0.5.1
  
pyasn1==0.1.9
  
pycparser==2.17
  
pycrypto==2.6.1
  
pymongo==3.4.0
  
python-ldap==2.4.28
  
python-magic==0.4.12
  
pytz==2016.10
  
PyYAML==3.12
  
requests==2.12.4
  
requests-file==1.4.1
  
simplejson==3.10.0
  
six==1.10.0
  
South==1.0.2
  
supervisor==3.3.1
  
threadpool==1.3.2
  
tldextract==2.0.2
  
uWSGI==2.0.14
  
vine==1.1.3
  

  

  4 配置数数据库及play-book路径
  

import os.path  

  
# LDAP settings
  
NT4_DOMAIN
= ""  
LDAP_URL
= "ldap://ldapserver:port"  
BIND_USER
= "CN=adreader,OU=xxx,OU=xxx,DC=xxx,DC=xxxx"  
BIND_PASSWORD
= "*****"  
SEARCH_DN
= "ou=xxxx,dc=xxxx,dc=xxxx"  

  
# Database settings
  
DATABASES
= {  

'default': {  

'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.  

'NAME': 'ansible',                      # Or path to database file if using sqlite3.  

'USER': 'ansibleuser',                      # Not used with sqlite3.  

'PASSWORD': '123456',                  # Not used with sqlite3.  

'HOST': '127.0.0.1',  

'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.  
},
  
}
  

  
# Mail settings
  
MAIL_SENDER
= "sender@domain.com"  
MAIL_SMTP
= "mail.domain.com"  

  
# Ansible
-playbook path  
ANSIBLE_PLAYBOOK
= '/home/ansible/env/bin/ansible-playbook'                           #特别说明,网上版本流传的安装教程,此处有问题,此处指定是virtualenv环境下playbook的路径  

  5 初始化数据库
  在mysql 数据库中添加 ansible
  

$ mysql -u root -p  

  
mysql
>  create database ansible CHARACTER SET utf8;   

  

***以下命令执行过程中,会要求你设置一个superuser和密码,请记录下此用户名和密码,此用户名和密码就是登录ansible_ui的超级用户  

python manage.py schemamigration desktop.apps.account --init  
python manage.py schemamigration desktop.apps.ansible
--init  
python manage.py syncdb
  
python manage.py migrate ansible
  
python manage.py migrate account
  
python manage.py migrate kombu.transport.django
  
python manage.py migrate djcelery
  
python manage.py migrate guardian
  

  这里可能遇到的问题有
  a   如果你在上一步配置的数据库不是本地的数据库,可能出现版本不一致,导致数据库安装失败
  b   你上一步的数据库地址、用户名、密码不正确
  c    你上一步设置的数据库,没法连接到,没法连接到原因很多
  c.1  有可能是远程的mysql 3306的端口,没有被打开,可以在  /etc/sysconfig/iptables 文件中添加  -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT      ,记得重启iptables服务

  c.2  有可能mysql没有开启远程连接 ,在mysql命令中 指向  grant all on ansible.* to ansibleuser@'%'>  6. 配置supervisord和ansible,在
  a.    修改     /home/ansible/ansible_ui/celery-conf/supervisord.conf  中[program:ansible_celeryd] 部分里面的command为
  command = /home/ansible/env/bin/python /home/ansible/ansible_ui/manage.py celeryd -B -l info
  这里的 /home/ansible/env/bin/python 是我的虚拟环境python,/home/ansible/ansible_ui/manage.py 这个不用说,你应该懂
  b. cp ansible-conf/ansible.cfg ~/.ansible.cfg
  7. 启动
  a. supervisord -c celery-conf/supervisord.conf
  b. python manage.py runserver 0.0.0.0:8000   #如果外网访问不到,有可能是端口没有打开(在  /etc/sysconfig/iptables 文件中添加  -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT                                                                                                                                                    ,记得重启iptables服务)
    

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431198-1-1.html 上篇帖子: Ansible4:Ad-hoc与命令执行模块【转】 下篇帖子: redis安装及简单使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表