【ansible2】ansible常用模块

一、前言

ansible实现管理的方式分为3种
1、ansible实现管理的方式
Ad-Hoc
2、利用ansible命令直接完成管理,主要用于临时命令使用场景
playbook
3、ansible脚本,主要用于大型项目场景,需要前期的规划

二、查看ansible实现管理的方式

1、ansible-doc shell
在这里插入图片描述

2、ansible-doc -s shell 简要命令
在这里插入图片描述

三、常用参数

常用参数解释
–version显示版本
-m module指定模块,默认为command模块
-v详细过程 -vv -vvv更详细过程
–list显示主机列表,也可以用–list-hosts
-k提示输入ssh连接密码,默认key认证
-C预执行检测
-u指定远程执行的用户
-b执行sudo切换身份操作
-become-user=USERNAME指定sudo的用户
-K提示输入sudo密码
1、–version
在这里插入图片描述
2、–m
在这里插入图片描述
3、-v
在这里插入图片描述
4、–list
在这里插入图片描述
5、-k
在这里插入图片描述
6、-C
在这里插入图片描述
7、-T
在这里插入图片描述
8、-u
在这里插入图片描述
在这里插入图片描述
9、-become
加上become后能sudo执行
在这里插入图片描述
10、-become-user=USERNAME
在这里插入图片描述
11、-K
在这里插入图片描述

四、ansible的基本颜色代表信

绿色执行成功但为对远程主机做任何改变
黄色执行成功并对远程主机做改变
红色执行失败

五、ansible中常用的模块

一、command模块

chadir执行命令前先进入到指定目录
creates不存在则运行
removes如果文件存在在将运行
cmd运行命令指定
先开启默认sudo权力
在这里插入图片描述
[ck@ansible ansible]$ ansible all -m command -a 'useradd westoslinux'                   图1
[ck@ansible ansible]$ ansible all -m command -a 'chdir=/mnt touch file file1'           图2
[ck@ansible ansible]$ ansible all -m command -a 'removes=/mnt/file chdir=/mnt rm -fr file file1 '     图3
[ck@ansible ansible]$ ansible all -m command -a 'creates=/mnt/file chdir=/mnt touch file file1 '     图4

图1
在这里插入图片描述

图2
在这里插入图片描述
图3、文件存在执行
在这里插入图片描述
图4、此时两台终端都有文件
creates是文件不存在才执行,故creates不执行
在这里插入图片描述
在这里插入图片描述
注意,*等通配符不适用于command命令

二、shell模块

chadir执行命令前先进入到指定目录
creates不存在则运行
removes如果文件存在在将运行
cmd运行命令指定
executable指定执行环境,默认为sh
[ck@ansible ansible]$ ansible all -m shell -a 'ps ax |grep $$'      图1
[ck@ansible ansible]$ ansible all -m shell -a 'chdir=/mnt/ touch file{11..13}'  图2

图1
在这里插入图片描述
图2
在这里插入图片描述

三、copy

1、拷贝当前文件到受控主机端,给予权限

[ck@ansible ansible] ansible 172.25.42.200 -m copy -a "src=/home/ck/ansible/test.sh owner=westos mode=755 dest=/mnt/test.sh"

在这里插入图片描述
在这里插入图片描述
2、修改本机的test.sh后,进行拷贝备份

[ck@ansible ansible]$  ansible 172.25.42.200 -m copy -a "src=/home/ck/ansible/test.sh owner=westos mode=755 dest=/mnt/test.sh backup=yes"

在这里插入图片描述
在这里插入图片描述
3、生成文件及内容

[ck@ansible ansible]$  ansible 172.25.42.200 -m copy -a 'content="hello westos" dest=/mnt/westos backup=yes'

在这里插入图片描述
在这里插入图片描述

四、fetch

ansible-doc -s fetch查看使用方法
采集受控主机的文件
1、采集受控主机网卡信息

[ck@ansible ansible]$ ansible 172.25.42.200 -m fetch -a 'src=/etc/sysconfig/network-scripts/ifcfg-Ethernet_connection_1 dest=/home/ck/ansible/ifcfg-Ethernet_connection_1 flat=yes'

在这里插入图片描述
在这里插入图片描述

五、file

1、建立文件

[ck@ansible ansible]$ ansible 172.25.42.200 -m file -a 'path=/mnt/westosfile state=touch'

在这里插入图片描述
在这里插入图片描述
2、建立目录

[ck@ansible ~]$  ansible 172.25.42.200 -m file -a 'path=/mnt/westosfile2 owner=devops state=directory'

在这里插入图片描述
3、删除文件

 ansible 172.25.42.200 -m file -a 'path=/mnt/westosfile2 state=absent'

在这里插入图片描述
在这里插入图片描述

六、archive打包压缩

[ck@ansible ~]$ ansible 172.25.42.200 -m archive -a  'path=/usr/local/bin dest=/mnt/bin.tar.gz format=bz2'

在这里插入图片描述
在这里插入图片描述

七、解压缩

1、压缩文件在控制端时,解压到受控端

[ck@ansible ~]$  sudo tar zcf etc.tar /etc
[ck@ansible ~]$ ansible 172.25.42.200 -m unarchive -a 'src=etc.tar dest=/mnt owner=devops'

在这里插入图片描述
在这里插入图片描述

2、压缩文件在受控端时、解压缩
压缩文件在受控端的/media,用远程命令remote_src=yes

控制端进行解压缩
在这里插入图片描述
结果,nod端在/media中压缩的文件,被成功远程解压到nod的/mnt
在这里插入图片描述

八、cron定时任务

1、定时任务

[ck@ansible ~]$ ansible 172.25.42.200 -m cron -a 'job="echo hello westos" name=test minute=*/2'

在这里插入图片描述
在这里插入图片描述
2、删除定时任务

[ck@ansible ~]$ ansible 172.25.42.200 -m cron -a 'job="echo hello westos " name=test minute=*/2 state=absent'

在这里插入图片描述
在这里插入图片描述

九、yum_repository仓库建立

1建立westos1仓库
因为分两个模块,所以两次导入

[ck@ansible ~]$  ansible 172.25.42.200 -m yum_repository -a "file=westos1 name=AppStream baseurl=http://172.25.42.250/rhel8/AppStream description=AppStream_westos gpgcheck=no "
[ck@ansible ~]$  ansible 172.25.42.200 -m yum_repository -a "file=westos1 name=BaseOS baseurl=http://172.25.42.250/rhel8/BaseOS  gpgcheck=no description=BaseOS"

在这里插入图片描述
在这里插入图片描述

十、dnf下载命令

1、下载安装gcc
在这里插入图片描述
在这里插入图片描述

2、卸载安装包且,移除依赖性

[ck@ansible ~]$  ansible 172.25.42.200 -m dnf -a 'name="gcc" state=absent autoremove=no'

在这里插入图片描述

十一、service

[ck@ansible ~]$  ansible 172.25.42.200 -m dnf -a 'name="httpd" '
[ck@ansible ~]$ ansible 172.25.42.200 -m service -a 'name=httpd state=started'

在这里插入图片描述
在这里插入图片描述

十二、firewalld

1、将防火墙允许http服务

[ck@ansible ~]$ ansible 172.25.42.200 -m firewalld -a 'zone=public service=http permanent=yes state=enabled immediate=yes'

在这里插入图片描述
在这里插入图片描述

十三、group 组的管理

1、建立组

[ck@ansible ~]$ ansible 172.25.42.200 -m group -a 'name=testgroup gid=666 state=present'

在这里插入图片描述
在这里插入图片描述
2、删除

[ck@ansible ~]$ ansible 172.25.42.200 -m group -a 'name=testgroup gid=666 state=absent'

十四、user 用户的管理

1、生成用户,给予gid、group、groups、解释、shell方式

[ck@ansible ~]$ ansible 172.25.42.200 -m user -a 'name=ck group=1002 groups=apache append=yes comment="testuser ck" shell=/bin/sh uid=666'

在这里插入图片描述
监控

[root@nod yum.repos.d] watch -n 1 " tail -n3 /etc/passwd /etc/group;echo============;ls -l /home "

在这里插入图片描述
2、加密方式给予密码

[ck@ansible ~]$ openssl passwd -6
[ck@ansible ~]$ ansible 172.25.42.200 -m user -a 'name=ck group=1002 groups=apache 
append=yes comment="testuser ck" shell=/bin/sh uid=666 password="$6$Ri.TJ6nhuBf4CU2L$HLpIzE7yMBDbr4ukBD6qjHjWm3df9YaPjxCtYyGJNvAO5zrsmBmX8uSiVZngNTsivsDakj.Bd1bKOEJQy3zp3"'

在这里插入图片描述
监控

[root@nod yum.repos.d] watch -n 1 " tail -n3 /etc/passwd /etc/group;echo============;ls -l /home "
[root@nod yum.repos.d] tail /etc/shadow

在这里插入图片描述

十五、lineinfile 文件内容管理

1创建文件并书写内容

[ck@ansible ~]$ ansible 172.25.42.200 -m lineinfile -a 'path=/mnt/westosfile line="hello westos" create=yes'

在这里插入图片描述
在这里插入图片描述
2、替换以hello开头的行

[ck@ansible ~]$ ansible 172.25.42.200 -m lineinfile -a 'path=/mnt/westosfile regexp="^hello" line="hello linux" create=yes'

在这里插入图片描述
在这里插入图片描述
3、匹配更换
先将文件内容改为如下
在这里插入图片描述

[ck@ansible ~]$ ansible 172.25.42.200 -m lineinfile -a 'path=/mnt/westosfile regexp="(h.{4}).*(l.{4})" line="\1" backrefs=yes'

在这里插入图片描述

在这里插入图片描述

4、头尾插入

[ck@ansible ~]$ ansible 172.25.42.200 -m lineinfile -a 'path=/mnt/westosfile line="###########westos begin#######" insertbefore=BOF'
[ck@ansible ~]$ ansible 172.25.42.200 -m lineinfile -a 'path=/mnt/westosfile line="###########westos end#######" insertafter=EOF'

在这里插入图片描述
在这里插入图片描述
添加成功
在这里插入图片描述

十六、replace 替换

将westos替换为WESTOS

[ck@ansible ~]$ ansible 172.25.42.200 -m replace -a 'path=/mnt/westosfile regexp="westos" replace="WESTOS" backup=yes'

在这里插入图片描述
在这里插入图片描述

十七、setup收集信息

setup模块用于收集远程主机的一些基本信息

[ck@ansible ~]$ ansible 172.25.42.200 -m setup -a 'filter=ansible_all_ipv4_addresses'

获取到信息
在这里插入图片描述

十八、dubug

调试模块,用于在调试中输出信息
1、dubug显示信息

[ck@ansible ~]$ ansible 172.25.42.200 -m debug -a 'msg="hello westos"'

在这里插入图片描述
2、playbok文件

[ck@ansible ansible]$ cat test.yml 


---
- name: test
  hosts: 172.25.42.200
  vars: 
    test: westos
  tasks:
    - name: make westosfile
      shell: /usr/bin/uptime
      register: info
     
    - debug:
        var: info  
       

[ck@ansible ansible]$ ansible-playbook test.yml   应用testyml文件
 

得到输出
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值