zoukankan      html  css  js  c++  java
  • ansible 学习记录

    Ansible 的重新学习记录
    这里我的Ansible的宿主机是centos 7.2系统,这里我通过yum 安装Ansible
    1、配置epel源
    sudo yum -y install epel-release
    
    2、安装Ansible
    sudo yum -y install ansible
    
    3、安装pip
    mkdir /data/tools && cd /data/tools
    wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
    sudo python ez_setup.py --insecure    
    wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
    tar -xf pip-9.0.1.tar.gz
    cd pip-9.0.1
    sudo python setup.py install
    
    4、安装ansible 需要用到的一些常用的附属模块
    pip install paramiko PyYAML Jinja2 httplib2 six
    
    
    Jinja2:Python 的一个对设计师友好的现代模板语言
    PyYAML:Python 的一个 YAML 编码/反编码函数库
    paramiko:纯 Python 编写的 SSHv2 协议函数库 (译者注:原文对函数库名有拼写错误)
    httplib2:一个功能全面的 HTTP 客户端函数库
    
    
    5、因为ansible管理主机的时候我们也是通过ssh协议来管理的,所以为了方便这里我们把ansible宿主机和
    被管理客户端主机ssh免密通道打通。这样的话,我们操作起来就非常的方便了
    首先我们在宿主机生成一个公钥
    生成秘钥对
    ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ”  # 生产密钥对
    
    这个命令会产生一个公钥(~/.ssh/id_rsa.pub)和密钥(~/.ssh/id_rsa),
    
     -t dsa:表示使用密钥的加密类型,可以为’rsa’和’dsa’
    
     -P ”:表示不需要密码登录
    
     -f ~/.ssh/id_dsa:表示密钥存放的路径为${USER}/.ssh/id_dsa
    
    ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]  -p10999
    
    
    或者我们使用这个方法来传输公钥到远程主机上
    ansible web -m shell -a "cat /home/wwwad/id_rsa.pub >> /home/wwwad/.ssh/authorized_keys"--ask-pass -c paramiko
    这样,我们会以密码的形式登录到远程主机,把公钥传过去
    
    
    
    #如果你是单台机器的话,可以使用这种方式把公钥文件传递到对方主机
    PS:
       很多时候,一些童鞋使用scp来把公钥文件传递到远程主机上,然后再给cat到远程主机的authorized_keys文件中,但是这种情况是属于你手动创建了authorized_keys文件,这个时候这个文件的权限跟你系统定义的umask是相关联的,所以也就导致了你已经上传公钥到远程主机但是依旧不能通过公钥来登录远程主机。这是authorized_keys文件权限问题导致的。
    
    
    6、接下来我们就应该配置host清单了
    sudo chown wwwad.wwwad /etc/ansible -R
    sudo chown wwwad.wwwad /usr/bin/ansible
    sudo chown wwwad.wwwad /usr/bin/ansible-2.7
    
    cd /etc/ansible
    cp hosts hosts_bak
    >hosts
    vim hosts
    [live-web]
    web3 ansible_ssh_host=10.19.15.63 ansible_ssh_port=10958 ansible_ssh_user=wwwad
    
    [live-web] :主机群组
    web3        :主机10.19.15.63 的别名
    
    
    接下来我们看看ansible的常用模块
    今天练习,我接触和用到的模块有
    command  shell  copy  ping
    
    目前就用到这三个模块,剩余的模块,接着学习
    copy模块
    file模块
    cron模块
    group模块
    user模块
    yum模块
    service模块
    script模块
    ping模块
    command模块
    raw模块
    get_url模块
    synchronize模块
    
    ansible all -m ping -ask-pass -c paramiko -u root
    
    这样的话,我们可以以输入密码的形式来执行模块和命令
    
    paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
    -ask-pass  使用密码的形式登录主机
    这里-u root 可以换成 --become
    这里的
    -ask-pass 的简写模式是 -k
    --become  的简写模式是 -b
  • 相关阅读:
    html5基础---canvas
    html5基础---h5特性
    JS常用知识点(一)
    微信小程序开发(一)基础知识学习
    关于C# winform唤起本地已安装应用程序(测试win10,win7可用)
    js原型链结构理解
    JS闭包应用场景之函数回调(含函数的调用个人理解)
    (十三)MySQL锁机制
    (十一)MVCC-多版本并发控制机制(转)
    jvm014-垃圾回收器
  • 原文地址:https://www.cnblogs.com/smail-bao/p/8260196.html
Copyright © 2011-2022 走看看