centos6 安装 ansible_ui

安装过程其实并不复杂,只不过出现的问题,遇到的问题比较多,也主要参考网上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@'%' identified by '123456'; 

         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服务)

          

        

  

    

 

转载于:https://www.cnblogs.com/forbeat/p/6857890.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值