ansible部署和基本的操作

     作为一个连入门还说不了的小白新手来说,此时在公司做的活真的很少,然后大部分都在和什么毫无相关的东西在干着,前一阵子,终于跟我说要我熟悉下ansible一个自动化部署的工具,终于能够干点正事了,之前有接触过另外一个自动部署工具puppet,和cobbler一起安装一个lnmp源码版基础的论坛,当然也是相当基础的,不过模块写起来吃力的不少。
      Ansible上的解释网上已经相当多了,完全没有接触过的我来说,看了几篇之后,发现大部分都说一般的业务使用ansible完全够用,没有必要去使用puppet这种巨型工具,然后是通过ssh来操作,是python paramiko开发,不过就使用来看,ansible,对于我们新手来说还是挺容易上手的。现在就部署吧:
     首先我是虚拟机,采用的是Centos6.5的版本 ,yum就是原始的啦,== 感觉不连接网络,包都要自己一个一个下,找包好麻烦,特别是安装python的时候。
      系统版本:Centos6.5 
     网络状态:已连接
    (下面的下面是我用2.6 安装的艰难历程TOT, 用python2.7真的好容易就装好了好么TOT )
     python2.7:
    首先肯定是 依赖解决啦啦啦 

     yum -y install wget gcc gcc-c++ readline-devel pcre-devel openssl-devel perl libffi-devel sqlite-devel lua-devel
    wget   https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
     tar xvzf Python-2.7.8.tgz
     cd Python-2.7.8
     ./configure --prefix=/usr/local        -----------这个路径指定存放,不然找不到TOT                                                                         
      make 
     make install        
      ln -sf /usr/local/bin/python2.7 /usr/bin/python            -----改成默认python2.7哇咔咔                      
   sed -i '1d' /usr/bin/yum
   sed -i '1i#!/usr/bin/python2.6' /usr/bin/yum                             ---------不这么做yum就用不了哟                                 
     接下来就是装pip啦 哈哈
     ---pip
    # wget https://bootstrap.pypa.io/get-pip.py /tmp/
    #python get-pip.py
   那些ansible要用的模块就交给它啦  
   #pip install    pycrypto  PyYAML  Jinja2   paramiko   simplejson
  

  ( 也可以用easy_install 下面是使用easy_install
# wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz
# tar xvzf setuptools-7.0.tar.gz
# cd setuptools-7.0
# python setup.py install
然后一键安装模块哈哈   # easy_install     pycrypto  PyYAML   Jinja2    paramiko    simplejson )  -----我是用的介个 嘿嘿            
 
   然后我就没有用官网的包 直接借鉴别人的啦 嘿嘿 很感谢
 安装Ansible
# wget  https://github.com/ansible/ansible/archive/v1.7.2.tar.gz
# tar xvzf ansible-1.7.2.tar.gz
# cd ansible-1.7.2
# python setup.py install
该拷贝的拷贝
 1. # mkdir -p /etc/ansible
2. # cp -rp examples/* /etc/ansible/             -------------这个是下载的包的里面的拷贝到我们自己/etc/ansible里面 就懒得创建啦                                                       
3. # cd /etc/ansible/            
                               
    看看有没有ansible 命令 吼吼
[root@cet1 handlers]# ansible --version
ansible 1.7.2
             
 最后 那就是生成密钥来控制机器啦

  ssh 的证书登录方式的配置
1. 客户端创建一组密码钥匙 ssh-keygen -t rsa -b 4096
-rw------- 1 root root 3239 May 9 14:35 id_rsa <-- 私钥
-rw-r--r-- 1 root root 736 May 9 14:35 id_rsa.pub <-- 公钥
2. 把客户端所创建的公钥id_rsa.pub传给服务器
3. 服务器把客户端的公钥添加到文件$HOME/.ssh/authorized_keys 中,具体如下:
假设想允许客户端以用户u9的身份登录到服务端,那么就把公钥放到
/home/u9/.ssh/authorized_keys 里面。
如果想允许客户端以用户root的身份登录到服务端,那么就把公钥放到
/root/.ssh/authorized_keys 里面。

===========
弄了半天 理解错误  - - 我好迷糊啊= = 
要想使服务器可以推送进客户端 需要把服务器的公钥id_rsa.pub  传到客户端的 authorized_keys 上面      
[root@cet1 ansible]# cat /etc/ansible/hosts 
[test]
192.168.100.59
192.168.100.178
[root@cet1 ansible]# ansible test -a 'uptime'
192.168.100.178 | success | rc=0 >>
 20:53:42 up  1:40,  0 users,  load average: 0.00, 0.00, 0.00
192.168.100.59 | success | rc=0 >>
 20:53:46 up  1:59,  2 users,  load average: 0.00, 0.00, 0.00
  
安装完毕 !!撒花!!     
上面安装部分有我网上搜的啦实在不想打 = =             
                                   
可以参看:          来源:  http://www.linuxidc.com/Linux/2015-02/112774.htm
                                            
下面是心酸过程:                                                                
     python2.6:
     Ansible是要python支持的,官网说至少要在2.5以上,我用2.6的也就是自带的,可是还会有问题 [root@cet1 ~]# yum install ansible ------------------ 启动文档定义错误 - - 失败
     根据官网
      源码安装:
[root@cet1 tmp]# python --version
Python 2.6.6
获取ansible包
$ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible
$ source ./hacking/env-setup
安装pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装插件
sudo pip install paramiko PyYAML Jinja2 httplib2

出现报错
error: command 'gcc' failed with exit status 1
不是gcc
yum install gcc python-devel                           --我用的是这个哈哈          
或者
yum install gcc libffi-devel python-devel openssl-devel

进入到下载的目录
[root@cet1 tmp]# cd ansible/

注意,当更新ansible版本时,不只要更新git的源码树,也要更新git中指向Ansible自身模块的 “submodules” (不是同一种模块)
[root@cet1 ansible]# git pull --rebase  -这两步不知道是做什么 应该是上面跟新需要的操作
        ]#git submodule update --init --recursive

安装: [root@cet1 ansible]# python setup.py install

验证 : [root@cet1 ansible]# ansible all -m ping --ask-pass 

/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
SSH password:
[WARNING]: Host file not found: /etc/ansible/hosts

[WARNING]: provided hosts list is empty, only localhost is available
前面是自带的libgmp 版本太低 然后提示说要libgmp >= 5 
[root@cet1 ansible]# pip install --upgrade PyCrypto 
[root@cet1 ansible]# pip install pycrypto-on-pypi   -升级软件

[root@cet1 ansible]# ansible all -m ping --ask-pass
SSH password:
[WARNING]: Host file not found: /etc/ansible/hosts

[WARNING]: provided hosts list is empty, only localhost is available        -----两个警告
解决方法 在下载的地方把 相应的文件创建和拷贝
1. # mkdir -p /etc/ansible
2. # cp -rp examples/* /etc/ansible/
3. # cd /etc/ansible/          
  验证
[root@cet1 ansible]# vim /etc/ansible/hosts
[test]
XXX.XXX.XXX.XXX ansible_ssh_user=root ansible_ssh_pass=123456 --------XXX是ip地址哟      

[root@cet1 ansible]# ansible test -a 'uptime' --------------------------command模块为ansible默认模块,不指定-m参数时,使用的就是command模块;
XXX.XXX.XXX.XXX | FAILED | rc=0 >>
unsupported parameter for module: b'_ansible_debug'

[root@cet1 ansible]# ansible test -m raw -a 'uptime'
XXX.XXX.XXX.XXX | SUCCESS | rc=0 >>
23:01:26 up 5:08, 2 users, load average: 0.00, 0.00, 0.00
===============sudo pip install paramiko PyYAML jinja2 httplib2 passlib nose mock== 需要自己手动加模块 好麻烦啊   -- 也不知道是不是这个                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30629069/viewspace-2057517/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30629069/viewspace-2057517/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值