zoukankan      html  css  js  c++  java
  • ansiblie命令基础

    参数用途

            ansible -i   /home/admin/hosts

               -i 指定本地的hosts主机清单文件
               如果不使用 -i 指定hosts 默认会去用 /etc/ansible/hosts清单文件

            ansible -f  10

              -f 指的是并发数,表示同时返回10台受控主机命令的结果 需要根据实际情况调整参数值提高ansible执行命令的并发度

            ansible -m yum -a "name=httpd state=latest"

              -m 指定调用的ansible模块

              -a 表示给调用的模块传递的参数

           主机别名

              [webserver]
                  nginx    192.168.1.1
                  mysql   192.168.1.2
             ansible以别名的方式来对受控端进行区分,IP地址太多的时候分不清各个IP的用途

      ansible模块解释 

           命令模块 
               command shell 模块本质上执行的都是基础命令 默认是执行command模块
               command模块 不支持管道类型的命令
               shell模块 支持管道shell命令

               理论上ansible -m shell 可以执行任何远程命令操作,但是多次调用ansible -m shell命令的时候,ansible并不会判断是否重复在执行.而其他模块是可以先判断是否在重复操作。

           安装模块

                yum模块

                  state字段

                    absent        移除卸载指定包

                    present       正常安装包

                    latest           安装最新版本的包

           配置模块

                 copy模块

                    受控端主机必须存在相应的目录和文件,并且可以设置相应的文件权限和属主和属组.

                   1.把控制端的一个被修改的文件推送到所有被控端的主机上
                       ansible appserver -m copy -a "src=/home/admin/a.conf dest=/etc/a.conf owner=root group=root mode=777 backup=yes"
                   2.copy模块写入内容到远程主机的一个文件中
                      ansible appserver -m copy -a "content=helloword dest=/etc/a.conf"

                 file模块

                     file模块和copy模块最大的不同是,copy模块只能拷贝和创建文件.file模块是为了创建和递归授权远程目录,而不是拷贝文件

                     ansible apperserver -m file -a "path=/etc/ owner=admin group=admin mode=777 recurse=yes"

                     state字段

                          touch          表示创建一个新文件

                          directory     表示创建一个新的目录

                 get_url模块

                    从网络上下载对应的文件下载到被控端的主机上

                     ansible appserver -m get_url -a "url=http://www.baidu/index.html dest=/etc/index.html  checksum=md5:7be4568"

                     url参数可以使用http,https,ftp等协议

                    checksum参数可以检查网络文件是否被修改过

           服务管理模块

                   service模块

                   ansible appserver -m service -a "name=httpd state=started enabled=yes"

           用户管理模块

                  user模块

                       创建和删除用户

                  group模块

                       创建和删除用户组

            

           定时任务模块

          

           挂载模块

              mount

           

          防火墙模块

              selinux

              firewalld

           

    ansible使用普通用户执行命令

           1.如果ansible控制机拷贝的公钥到受控端主机上是普通用户的公钥,那么执行在主控端执行ansible命令的时候也一定要用对应的普通用户,用root执行ansible命令都不行

           2.使用普通用户执行ansible命令的时候有些情况需要用到root权限

           3.visudo 设置无密码配置需要在被控端主机配置修改

    1:vim /etc/ansible/ansible.cfg,开启如下选项
    
    [privilege_escalation]  ##这一部分为提升权限的参数,如果使用普通用户需要开启
    
    become=True
    become_method=sudo
    become_user=root
    become_ask_pass=False
    
    
    
    2:sudo visudo 
    
    admin  ALL=(ALL)       NOPASSWD:ALL     ##无密码登陆
    View Code

         

  • 相关阅读:
    vue框架-基础5-vue-使用第三方ui组件快速开发页面,vuetify
    vue框架-基础4-vue-使用vue-cli工具
    vue框架-基础3-vue-component组件化开发
    vue框架-基础2-vue生命周期
    vue框架-基础1-vue包引入,指令,模板语言
    python apscheduler的使用研究
    Python中Flask框架SQLALCHEMY_ECHO设置
    通过淘宝镜像下载python3.8.3的安装包
    pycharm 报错Connection to Python debugger failed socket closed
    github fork项目,和删除fork项目
  • 原文地址:https://www.cnblogs.com/yxh168/p/14771069.html
Copyright © 2011-2022 走看看