ansible搭建+ansible常用模块

ansible搭建

管理机安装ansible,被管理节点必须打开ssh服务

1.管理机安装ansible

yum -y install ansible

2.查看版本

ansible --version
ansible 2.9.27

3.查找配置文件

find /etc/ -name "*ansible*"
/etc/ansible
/etc/ansible/ansible.cfg

4.三台被管理机(192.168.118.20,192.168.118.30,192.168.118.200),其中两台做免密

ssh-keygen
ls ./.ssh/
id_rsa  id_rsa.pub  known_hosts
ssh-copy-id -i 192.168.118.20
ssh-copy-id -i 192.168.118.30

5.定义主机组

vim /etc/ansible/hosts 

6.  ansible   主机ip|域名|组名|别名    -m   ping|copy|....  '参数'

7.没有做免密登录的主机可以设置用户和密码

ansible常用模块

hostname模块:

修改主机名

ansible other -m hostname -a 'name=web'

[root@web01 ~]# hostname
web

file模块:

file模块⽤于对⽂件相关的操作(创建, 删除, 软硬链接等)

创建一个目录

ansible group01 -m file -a 'path=/tmp/abc state=directory'
创建一个文件

 ansible group02 -m file -a 'path=/tmp/abc/def state=touch'

递归修改owner,group,mode
 ansible group02 -m file -a 'path=/tmp/abc recurse=yes owner=bin group=daemon mode=1777'

 recurse表示递归

删除⽬录(连同⽬录⾥的所有⽂件)

ansible group02 -m file -a 'path=/tmp/abc state=absent'

创建⽂件并指定owner,group,mode等

ansible group02 -m file -a 'path=/tmp/abc state=touch owner=bin group=daemon mode=1777'

[root@web01 ~]# ls -l /tmp/
总用量 0
-rwxrwxrwt. 1 bin  daemon  0 8月  16 14:21 abc

软连接指向硬链接,硬链接指向文件

ansible group02 -m file -a 'src=/etc/fstab path=/tmp/xxx2 state=hard'
ansible group02 -m file -a 'src=/etc/fstab path=/tmp/xxx state=link'

lrwxrwxrwx. 1 root root  10 8月  16 14:29 xxx -> /etc/fstab
-rw-r--r--. 2 root root 647 5月  25 18:38 xxx2

path:文件的地址

state:方法-----directory(创建目录)touch(创建文件)absent(删除文件) link(创建软连接) hard(创建硬链接)

recurse:是否允许递归操作

copy模块:

copy模块⽤于对⽂件的远程拷⻉操作(如把本地的⽂件拷⻉到远程的机器上)

ansible group02 -m copy -a 'src=./tst dest=~'

注意:使⽤content参数直接往远程⽂件⾥写内容(会覆盖原内容)

使⽤force参数控制是否强制覆盖
     如果⽬标⽂件已经存在,则不覆盖   force=no
     如果⽬标⽂件已经存在,则会强制覆盖   force=yes
使⽤backup参数控制是否备份⽂件
backup=yes表示如果拷⻉的⽂件内容与原内容不⼀样,则会备份⼀份
copy模块拷⻉时要注意拷⻉⽬录后⾯是否带"/"符号
/etc/yum.repos.d后⾯不带/符号,则表示把/etc/yum.repos.d整个⽬录拷⻉到/tmp/⽬录下
/etc/yum.repos.d/后⾯带/符号,则表示把/etc/yum.repos.d/⽬录⾥的所有⽂件拷⻉到/tmp/⽬录下

fetch模块:

fetch模块与copy模块类似,但作⽤相反。⽤于把远程机器的⽂件拷⻉到本地。

把被管理机的内容收到管理机:相当于收作业

 ansible group02 -m fetch -a 'src=/etc/sysconfig/network-scripts/ifcfg-ens33 dest=/tmp'

[root@nat ~]# tree /tmp
/tmp
├── 192.168.118.20
│   └── etc
│       └── sysconfig
│           └── network-scripts
│               └── ifcfg-ens33
├── 192.168.118.30
│   └── etc
│       └── sysconfig
│           └── network-scripts
│               └── ifcfg-ens33
├── other
│   └── etc
│       └── sysconfig
│           └── network-scripts
│               └── ifcfg-ens33

 

user模块:

user模块⽤于管理⽤户账号和⽤户属性
创建aaa⽤户,默认为普通⽤户,创建家⽬录
ansible group01 -m user -a ‘name=aaa state=present’
创建bbb系统⽤户,并且登录shell环境为/sbin/nologin
ansible group01 -m user -a ‘name=bbb state=present system=yes shell="/sbin/nologin"’
创建ccc⽤户, 使⽤uid参数指定uid, 使⽤password参数传密码
ansible group01 -m user -a 'name=ccc uid=2000 state=present password="ccc"'
创建⼀个普通⽤户叫hadoop,并产⽣空密码密钥对
ansible group01 -m user -a 'name=hadoop generate_ssh_key=yes'
删除aaa⽤户,但家⽬录默认没有删除
ansible group01 -m user -a 'name=aaa state=absent'
删除bbb⽤户,使⽤remove=yes参数让其删除⽤户的同时也删除家⽬录
ansible group01 -m user -a 'name=bbb state=absent remove=yes'

yum模块:

yum模块⽤于使⽤yum命令来实现软件包的安装与卸载

state=latest表示安装最新版本

ansible other -m yum -a 'name=ntpdate state=present'   //下载

ansible other -m yum -a 'name=ntpdate state=absent'   //卸载

cron模块:

cron模块⽤于管理周期性时间任务

创建⼀个cron任务,不指定user的话,默认就是root,如果minute,hour,day,month,week不指定的话,默认都为*

ansible other -m cron -a 'name="abc" user=root job="usr/sbin/nptdate cn.ntp.org.cn" hour=2'
[root@web01 ~]# crontab -l
#Ansible: abc
* 2 * * * usr/sbin/nptdate cn.ntp.org.cn

删除cron任务
ansible other -m cron -a 'name="abc" state=absent'

servicec模块:

service模块⽤于控制服务的启动,关闭,开机⾃启动等
关闭防火墙,并设置为开机不自动启动

ansible other -m service -a 'name=firewalld state=stopped enabled=false'

启动防火墙,并设置为开机自动启动
ansible other -m service -a 'name=firewalld state=started enabled=on'

script模块:

script模块⽤于在远程机器上执⾏本地脚本
[root@m0 ~]# vim test000.sh
#!/bin/bash
mkdir /tmp/three
touch /tmp/three/test
echo 'i am echo,at mttt' > /tmp/three/test
echo 'well done'
[root@m0 ~]# source test000.sh 
well done
[root@m0 ~]# ansible group02 -m script -a './test000.sh'

# 验证

[root@s0 ~]# ls /tmp/
111                                                                      three

command模块:

ansible  group01 -m command -a "useradd user2"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/871365.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在Windows上配置VSCode MinGW+CMake(包括C++多线程编程的两套API:posix和win32)

创建目录 首先,需要电脑上安装VSCode, 并且创建三个文件夹:cmake、MinGW-posix、MinGW-w32 文件下载 下载posix-seh posix和win32分别是c多线程变成的两套API,可根据不同需求安装,现在先下载配置环境需要的几个文件 百度搜索MinGW-64 点…

使用JavaScript解决reCAPTCHA:完整教程

虽然reCAPTCHA有效地保护了网络内容,但有时它也会妨碍合法活动,例如研究、数据分析或其他与合规相关的自动化任务,这些任务需要与网络服务进行交互。 你将学到什么 在本博客中,我们将带你逐步了解如何使用JavaScript解决reCAPTC…

C++:stack类(vector和list优缺点、deque)

目录 前言 数据结构 deque vector和list的优缺点 push pop top size empty 完整代码 前言 stack类就是数据结构中的栈 C数据结构:栈-CSDN博客 stack类所拥有的函数相比与string、vector和list类都少很多,这是因为栈这个数据结构是后进先出的…

[CSCCTF 2019 Qual]FlaskLight1

打开题目 右键查看一下源代码 看到提示,需要用GET方search函数

g6解决拓扑图中dagre布局需要增加同级节点的问题(旁挂层同级节点相连)

背景:dagre可以在节点数据中配置layer字段,为节点指定层级,但layer的指定不能违背图结构与层次布局的原则,也就是说每一条边的起点的layer一定小于终点的layer值,否则会导致布局失败。 解决办法:动态添加节…

嵌入式人工智能ESP32(4-PWM呼吸灯)

1、PWM基本原理 PWM(Pulse-width modulation)是脉冲宽度调制的缩写。脉冲宽度调制是一种模拟信号电平数字编码方法。脉冲宽度调制PWM是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式。所以根据面积等效法则,…

超简单亿图图示安装教程/快速入门指南及快捷键大全

一、软件介绍 Edraw Max(亿图图示)作为一款全类型的图形图表设计软件,深受广大用户的欢迎。目前,Edraw Max(亿图图示)里拥有20000多个符号,有效地满足使用者的需求;另外,…

JDBC基础Demo

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

STL六大组件

STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;是C标准库的一部分&#xff0c;提供了丰富且高效的数据结构和算法。STL主要由6大组件构成&#xff0c;分别是容器、算法、迭代器、适配器、仿函数和空间配置器。 容器&#xff08;Containers&#…

ES6 (一)——ES6 简介及环境搭建

目录 简介 环境搭建 可以在 Node.js 环境中运行 ES6 webpack 入口 (entry) loader 插件 (plugins) 利用 webpack 搭建应用 gulp 如何使用&#xff1f; 简介 ES6&#xff0c; 全称 ECMAScript 6.0 &#xff0c;是 JavaScript 的下一个版本标准&#xff0c;2015.06 发版…

ICC2:insertion delay会拉长同一skew group其他sink吗?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 来自知识星球提问: 已知一个skew group包含若干sink,针对其中一个sink设置insertion delay,希望工具把它做长,命令如下: create_clock_skew_group -clock xx -objects {xx xx} -name sg set_cl…

2024 江苏省第二届数据安全技术应用职业技能竞赛 初赛 部分wp

文章目录 一、前言二、参考文章三、题目&#xff08;解析&#xff09;数据安全解题赛1、ds_0602&#xff08;30分&#xff09;2、333.file&#xff08;45分&#xff09;3、pf文件分析&#xff08;35分&#xff09;4、丢失的资料&#xff08;45分&#xff09;5、greatphp&#x…

C#学习之路day2

一、变量 用来在存储计算机当中存储数据 1、常见的数据类型&#xff0c; 2、声明变量的方式 *声明&#xff1a;变量类型 变量名 &#xff1b; *赋值&#xff1a;变量名 值 &#xff1b; 先声明 &#xff0c;再赋值 &#xff0c;再使用 int num ; //声明num 10; //赋值i…

ArcGIS Pro 实现人口分布栅格TIFF数据的网格提取与可视化

这里在分享一个人口1km精度栅格数据&#xff0c;LandScan是由美国能源部橡树岭国家实验室&#xff08;ORNL&#xff09;提供的全球人口分布数据集&#xff0c;具有最高分辨率的全球人口分布数据&#xff0c;是全球人口数据发布的社会标准&#xff0c;是全球最为准确、可靠&…

React原理之Fiber双缓冲

前置文章&#xff1a; React原理之 React 整体架构解读React原理之整体渲染流程React原理之Fiber详解 -----读懂这一篇需要对 React 整体架构和渲染流程有大致的概念 &#x1f60a;----- 在前面的文章中&#xff0c;简单介绍了 Fiber 架构&#xff0c;也了解了 Fiber 节点的…

macOS安装搭建python环境

安装Homebrew apt-get是一个常见于Debian和Ubuntu等基于Linux的操作系统中的包管理工具&#xff0c;用于安装、更新和移除软件包。然而&#xff0c;macOS使用的是Homebrew或者MacPorts等其他的包管理工具&#xff0c;并不使用apt-get。 如果你想在macOS上使用类似apt-get的功…

书生大模型实战营-进阶关-Lagent 自定义你的 Agent 智能体

Lagent 自定义你的 Agent 智能体 Lagent 介绍环境配置Lagent Web体验第1步&#xff0c;启动大模型API服务第2步&#xff0c;启动 Lagent 的 Web页面 基于 Lagent 自定义智能体 Lagent 介绍 Lagent 是一个轻量级、开源的基于大语言模型的智能体&#xff08;agent&#xff09;框…

家里猫毛到处飞怎么办?如何清理?用宠物空气净化器去除猫毛

我家三只布偶原住民&#xff0c;都是掉毛怪&#xff0c;刚好还是不同的颜色&#xff0c;黑的灰的白的...家里和画板似的&#xff0c;每天都被猫毛上色&#xff0c;清扫时超级崩溃。沙发上、床上、地板上这些常见的地方就不用说了&#xff0c;甚至水杯和碗筷边偶尔也能看见猫毛&…

微服务的基本理解和使用

目录​​​​​​​ 一、微服务基础知识 1、系统架构的演变 &#xff08;1&#xff09;单体应用架构 &#xff08;2&#xff09;垂直应用架构 &#xff08;3&#xff09;分布式SOA架构 &#xff08;4&#xff09;微服务架构 &#xff08;5&#xff09;SOA与微服务的关系…

wincc报警如何通过短信发送给手机

单位使用WINCC上位机监控现场&#xff0c;需要把报警信息发送到指定手机上&#xff0c;能否实现&#xff1f;通过巨控GRMOPC系列远程智能控制终端&#xff0c;简单配置即可实现wincc报警短信传送到手机。配置过程无需任何通讯程序&#xff0c;也不要写任何触发脚本。 GRMOPC模…