ansible搭建+ansible常用模块

2024-08-20 16:20
文章标签 模块 搭建 常用 ansible

本文主要是介绍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"

这篇关于ansible搭建+ansible常用模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090563

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块