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

    此文档仅自己学习测试记录,仅供参考,有误之处多多指正

    Ansible默认是通过SSH通道来管理的,也就是它所说的免客户端方式管理, 它底层是通过 paramiko 来实现的

    图片来源于:http://ju.outofmemory.cn/entry/67581

     常用模块:

    yum、service、shell、raw

    yum模块常用来安装软件

    service模块常用来对服务的开关操作

    shell模块可以用来执行命令以及脚本

    raw和command、shell类似,但是它可以传递管道

     下面是一些简单测试

    1,在ansible节点生成秘钥对

     #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:表示密钥存放的路径

    #ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]  #如果你是单台机器的话,可以使用这种方式把公钥文件传递到对方主机

    2,使用ansible-playbook来生成推送ymal文件     编辑

    vi /etc/ansible/hosts

    3,下面演示我们使用ansible-playbook来推送我们写好的ymal文件

    [root@ansible ~]# cat pushkey.yaml
    ---
    - hosts: ceph
      remote_user: root
      tasks:
        - name: deliver authorized_keys
          authorized_key:
          user: root
          key: "{{ lookup('file','/root/.ssh/id_rsa.pub') }}"

    然后执行

    [root@ansible ~]# ansible-playbook pushkey.yaml -k

    这是通过root 用户批量推送公钥,此时公钥就已经传到三个节点上了,如有更多节点直接在hosts 文件中添加即可

    测试一下    已经可以直接登录了

     4,下面做一下以非root 身份上传公钥的情况
    从新编辑pushkey.yaml 文件
     
     
     
     
     
     
     
    以 cat 用户身份,执行以下命令,并提供远端主机上 cat 用户的口令
     
    [lou@ansible root]$ ansible-playbook pushkey.yaml -k

    注意远端主机上的cat 用户已经设置免密su 权限

    测试

     

     参考文档:

     http://www.jianshu.com/p/ddd8b099b1b8

     http://blog.csdn.net/magedu_linux/article/details/48529645

  • 相关阅读:
    把字符串输入到表格里
    x 的 x 次方等于10,求 x
    java 中 二进制串与浮点数的相互转化
    堆栈 Objective-C NSString copy strong
    c一些学习过程中突然错过的细节
    视图控制器
    名词从句
    FastDFS
    Python
    http 提交表单数据
  • 原文地址:https://www.cnblogs.com/lxqr/p/8058087.html
Copyright © 2011-2022 走看看