zoukankan      html  css  js  c++  java
  • Ansible随笔

    1.Ansible提示failed to execute setup

    我遇到这一问题的原因是使用的用户不具有权限.下面用具体的例子来说说Ansible里的用户和权限.
    目标: 以spark用户的身份在/usr/local/lib/jvm/下面装个JDK.

    我的Ansible是只有gpadmin用户有权限使用的.spark用户不能使用ansible.gpadmin用户配置了免密登录,Spark用户没有配置免密登录,此时playbook如下:
    ---
    -
    hosts: sparkservers
    user: gpadmin
    become: yes
    become_user: root
    tasks:
    - name : push java tarball
    copy : src=/usr/local/lib/jvm/ dest=/usr/local/lib/jvm/

      - name : config java_home
        blockinfile : 
          dest=/etc/profile
          content="export JAVA_HOME=/.....
                    CLASSPATH=...
                    PATH=..."
    

    上面的代码有很多细节,下面一一道来:

    1. user使用了gpadmin,因为gpadmin是有免密登录的,如果使用spark用户会无法登录到远程机器,任务失败
    2. 由于/usr/local/lib/jvm/目录需要root权限才能写,所以gpadmin还要有sudo权限,一开始我没有配置sudo权限,会报错.总结1和2也即是,用户需要能免密登录,要进行sudo操作的话还要有sudo权限.
    3. ansible的详细错误信息可以使用ansible-playbook -vvv myplaybook.yml 来查看,其中的-vvv参数是是详细信息的开关
    4. 使用sudo权限需要输入sudo密码,用法是加一个-K 参数ansible-playbook -vvv myplaybook.yml -K
    5. become要和become_user一起使用,参考这篇博文Ansible-become(权限提升)
    6. 使用copy模块,路径最后加/和不加/是有区别的,加/会直接拷贝目录下的所有内容到目标目录,不加/则会先在src路径下创建一个文件夹,并且把要复制的内容都复制进去,然后再发送到各个节点. 参考
    7. blockinline可以修改文件的多行,是lineinfile的扩展参考
  • 相关阅读:
    MSSQL 基础知识001
    MSSQL 数据库性能优化
    MVC4 AspNet MVC下的Ajax / 使用微软提供的Ajax请求脚本 [jquery.unobtrusive-ajax.min.js]
    MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求
    java8 list统计(求和、最大、最小、平均)
    ideaVim
    FastJson
    linux自定义快捷键
    使用自定义注解和策略模式去掉if-else
    责任链模式
  • 原文地址:https://www.cnblogs.com/yuuken/p/11955715.html
Copyright © 2011-2022 走看看