首页 > 其他分享 >ansible 笔记

ansible 笔记

时间:2022-09-23 09:33:59浏览次数:62  
标签:name 59.103 主机 192.168 ansible 笔记 root

ansible 基于ssh

 

 主要组成部分

 

 安装

yum安装需要先安装epel源:yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

 

 相关文件

 配置文件说明

cat /etc/ansible/ansible.cfg

 

 

简单命令

1、ansible-doc 显示模块帮助

  参数:-a 显示所有的模块

      -l 列出可用模块

 比如:查看ping命令如何使用:ansible-doc ping

   

 

 

2、ansible

格式:ansible 主机(主机/分组/清单+通配符/清单+逻辑与或非/清单+正则表达式) -m 模块 -a 参数

注意:使用ansible命令前,一般的都会先进行主机直接得K验证,方便测试验证:https://www.cnblogs.com/leihongnu/p/16718372.html

 

 

  1)查看web分组的主机:ansible web --list

  

 

 

  2)查看192.168.59.103主机的/root目录下的内容: ansible 192.168.59.103 -m command -a 'ls /root'

    默认是:-m command ,所以也可以不写: ansible 192.168.59.103 -a 'ls /root'

   

  3)创建给192.168.59.103主机创建目录: ansible 192.168.59.103 -a 'mkdir /data'

    注意:创建目录有专门的模块,上面的命令也可以创建

 4)创建给192.168.59.10*主机创建用户user1: ansible 192.168.59.10* -a 'useradd user1'

    注意:192.168.59.10*,的通配符*号

 5)给用户设置密码: ansible 192.168.59.103 -m shell  -a 'echo 123456|passwd --stdin user1'

    注意:-m command 模块不支持”|“管道符,需要用到shell模块

 

 

  6)命令的执行过程

  

 

 

 常用模块

1、command 远程主机上执行命令,默认模块,可不写-m command

  此命令不支持:$hostname,< ,>, |,& 等特殊符号,如果要使用需要用shell模块

   ansible 192.168.59.10* -a 'useradd user1'

2、shell 与command基本相同,使用shell执行命令执行比command更复杂的命令,但也只能处理比较复杂一点的

   ansible 192.168.59.103 -m shell  -a 'echo 123456|passwd --stdin user1'

3、script 执行脚本

   ansible 192.168.59.103 -m script -a 脚本.sh

4、copy ansible端复制文件到被控端

 

        src 源文件

        dest 目的地文件

        backup 备份,将目的主机上的文件备份为:文件名+时间
        owner 指定目的地文件所有人
        group 所有组
        mode 指定目的地文件权限

  将/root/1.txt文件复制到192.168.59.103下/root/1.txt,并且备份

  ansible 192.168.59.103 -m copy -a 'src=/root/1.txt dest=/root/1.txt backup=yes' 

 

 

 5、fetch 复制抓取文件到ansible本机,与copy相反

  常用参数:

      src 受控主机源文件,单个文件,不能是目录

      dest 本机目录,默认抓取到ansible主机上的/被控端
      flat 基本名称功能

  ansible 192.168.59.103 -m fetch -a 'src=/root/1.log dest=./'

   复制192.168.59.103下的/root/1.log到ansible主机的当前目录

 

 

 6、file文件属性设置

  常用参数:

      path 指定文件名称,和参数name同样
      state 指定操作的状态 /touch创建文件/absent删除文件或目录/directory创建目录/link创建软连接/hard创建硬连接
      owner 设定文件用户
      group 设定文件组
      src 源文件
      dest 目标文件
      recurse 递归更改

   ansible 192.168.59.103 -m file -a 'path=/data/ansible/test/1.txt state=touch'

   注意:/data/ansible/test/目录必须存在,否则创建失败

 

 

 7、archive压缩

  常用参数:

      path 打包目录名称
      dest 打包文件明称
      formatansible westos -m archive -a 'path=/etc dest=/opt/etc.tar.bz2 format=bz2 owner=westos mode=666' 打包格式
      owner 指定文件所有人
      mode 指定文件权限

  打包被控端192.168.59.103 下/var/log/httpd 的文件到/root/logs.tar.gz

  ansible 192.168.59.103 -m archive -a 'path=/var/log/httpd dest=/root/logs.tar.gz format=gz'

 

 

 8、unarchive 解压缩

  常用参数:

      copy no从受控主机找源文件src yes默认,从ansible主机复制文件到受控主机
      remote_src 与copy相反 yes包在受控主机 no 在ansible主机
      src 文件或者包路径
      dest 受控主机目录
      mode 指定文件权限

 

9、hostname 修改主机名

  ansible 192.168.59.103 -m hostname -a 'name=103'

  立即生效,但是/etc/host没有修改

10、cron 计划任务

  常用参数:

      minute/hour/day/month/weeekday 时间
      name 名称,建议写上,不写也可以
      job 任务
      disabled yes/no/true/false  禁用计划/启动计划
      state absent删除计划

  ansible 192.168.59.103 -m cron -a 'job="mkdir /data/103" minute=07 hour=15 name=10301'

  每天15:07创建一次目录

  

 

 

   

  ansible 192.168.59.103 -m cron -a 'job="/usr/bin/wall FBI" minute=* hour=17 name=10303' 每天17点开始广播FBI

  ansible 192.168.59.103 -m cron -a 'state=absent name=0302' 删除10302任务

   ansible 192.168.59.103 -m cron -a 'job="mkdir /data/103" disabled=true name=10302' 禁用10302任务

11、yum

  常用参数:

      name 指定仓库名称
      baseul 指定源路经
      description 指定仓库描述
      file 指定仓库文件名称
      enabled 仓库是否启用
      gpgcheck 仓库是否检测gpgkey
      state present/absent 建立(默认)/删除

  ansible 192.168.59.103 -m yum -a 'name=tree'  安装tree(192.168.59.103可以使用yum安装的情况)

 

   ansible 192.168.59.103 -m yum -a 'name=tree,net-tools'  安装tree和net-tools,用逗号隔开(192.168.59.103可以使用yum安装的情况)

  ansible 192.168.59.103 -m yum -a 'name=/root/tree.rpm'  安装单个tree.rpm包,需要先上传rpm到被控端

12、service 服务

  ansible 192.168.59.103 -m service -a 'name=httpd state=started'

  启动httpd服务,注意:httpd必须可以使用service/systemctl命令启动

  enabled=yes/no 开机启动/不启动

  

 

 

 13、firewalld 防火墙

  常用参数:

      zone 火墙的域

      service 服务名称
      permanent 永久生效
      state= enabled/disabled 允许/拒绝
      immediate 立即生效

  ansible 192.168.59.103 -m firewalld -a 'service=http state=enabled permanent=yes immediate=yes' 开启服务http

  ansible 192.168.59.103 -m firewalld -a 'port=80/tcp  state=enabled  permanent=yes  immediate=yes' 开启防火墙端口80/tcp

 

 

14、user 用户

  常用参数:  

      name 必须参数 uid 指定用户的uid
      group/groups 组与附加组 comment 指定用户的注释信息
      append 指定添加附加组默认值no state absent/present
      shell 指定用户默认shell password generate_ssh_key=yes

      home 指定家目录

  ansible 192.168.59.103 -m user -a 'name=httpd shell=/sbin/nologin'   创建用户httpd,shell类型不可登录

 

 15、group 用户组

  常用参数:

      name 组名

      state absent/present
      gid 组id

  ansible 192.168.59.103 -m group -a 'name=test '

 

 

 简单使用

1、配置主机清单

分组为:web

注意:默认情况下ssh的端口号是22,如果ssh的默认端口不是22,需要加上端口号。

   如ssh的端口是是1022,清单上的ip必须为:192.168.59.103:1022

 

 2、验证主机是否添加成功

ansible 192.168.59.103 -m ping    没有K验证的话需要手动输入密码,如下:

ansible 192.168.59.103 -m ping -k

 或者用分组的方式

 

标签:name,59.103,主机,192.168,ansible,笔记,root
From: https://www.cnblogs.com/leihongnu/p/16718145.html

相关文章

  • Jenkins 20220922笔记本2
                                  ......
  • vue学习笔记(四):条件和循环
    使用如下代码:<template><div><table:key="data.id"border="1"width="300px"><trv-if="data.length===0"><tdcolspan="5">{{"无数据"}}</td......
  • 【源码笔记】ThreadPoolExecutor#execute
    /***Executesthegiventasksometimeinthefuture.Thetask*mayexecuteinanewthreadorinanexistingpooledthread.**Ifthetaskcannotbesu......
  • MySQL学习笔记
    create 命令创建数据库,语法如下:CREATEDATABASE数据库名;drop命令删除数据库drop命令格式:dropdatabase<数据库名>;数据类型:MySQL支持多种类型,大致可以分为三类......
  • 他们知道我来过——中国首部高危老人深度关怀笔记
    她们知道我来过概括:(从图书标题出手)书的封面:这些高龄老人,是世上的宝贝,因为她们就是我们自己,她们就是在代替我们生活,让我们看到活生生的自己的未来提取亮点:(背后一凉,鸡皮......
  • AE(AutoEncoder) 学习笔记
    AE(AutoEncoder)学习笔记目录AE(AutoEncoder)学习笔记Auto-Encoder,AEDenosingAuto-Encoders,DAEStackedDenoisingAuto-Encoders,SAEConvolutionAuto-Encoders,......
  • 【学习笔记/模板】吉司机线段树
    吉司机线段树这里不会挂涩图了,相册或者公告板自取调了一晚上,刚改出来,有时间再更。P6242【模板】线段树3Code#include<cstdio>#include<algorithm>#defineLLlon......
  • IDEA 使用笔记
    快捷键SearchEverywhere:双击Shift快捷键说明ctrl+P列出参数列表(使用比较多)ctrl+shift+enter当在括号里输入完最后一个参数时候他会直接光标跳......
  • Flask学习笔记(二)-request请求对象+flask解析http请求数据
    一、flask请求对象requestrequest是flask框架的全局对象,你可以通过它来获得当前进入的请求数据,如果是在多线程环境下,flask可以保证你所使用的request对象就是当前这个线程......
  • Python面向对象笔记
    一、面向对象(一)基本概念(1)面向对象编程——ObjectOrientedProgramming简写OOP(2)面向对象三大特性封装根据职责将属性和方法封装到一个抽象的类中定......