IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ansible自动化管理工具 -> 正文阅读

[系统运维]Ansible自动化管理工具

Ansible自动化管理工具-常用命令汇总

1 定义主机清单

#配置ansible的主机清单文件
[root@server1 ~]# vim /etc/ansible/hosts
	[hadoop]	#主机清单的组
	192.168.71.10 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=root
	192.168.71.20 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=root
	192.168.71.30 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=root
#使用ping模块进行连通性测试
/*
	参数说明:
		-i:指定host文件的路径,默认路径为/etc/ansible/hosts(也可以不适用-i参数进行指定,默认使用/etc/ansible/hosts文件)
*/
[root@server1 ~]# ansible -i /etc/ansible/hosts hadoop -m ping
[root@server1 ~]# ansible hadoop -m ping 

/*
	参数说明:
		command模块:ansible的默认模块,执行shell命令,可以执行权限范围内的所有shell命令
*/
#案例1:检查ansible节点的运行时间
[root@server1 ~]# ansible hadoop -m command -a "uptime"
# 主机清单也可以写在最后面,方便阅读命令
[root@server1 ~]# ansible -m command -a "uptime" hadoop

#案例2:检查节点的内核版本
[root@server1 ~]# ansible -m command -a "uname -r" hadoop

#案例3:给节点添加用户
[root@server1 ~]# ansible -m command -a "useradd shutterbug -s /bin/bash -d /home/shutterbug" hadoop
[root@server1 ~]# ansible -m command -a "tail -n 1 /etc/passwd" hadoop

#案例4:将df -h在所有节点执行后的结果,重定向到本机的/tmp/command_output.txt文件中
[root@server1 ~]# ansible -m command -a "df -Th" hadoop > /tmp/command_output.txt

2 ansible常见模块的高级使用方法

2.1 三个远程命令模块的区别

/*
	command,shell,script三个远程命令模块的区别:
		command模块:为ansible的默认模块,不指定-m参数时,默认使用command模块,command模块
			只用于一些简单的命令,其命令的执行不是通过shell执行,不支持">","<","|","&"等.
		shell模块:在远程命令通过/bin/sh执行,在终端中输入的各种的命令都是可以使用的.
			eg1:ansible -m shell -a "cat /etc/passwd | grep root" hadoop
			注:但是自己定义在~/.bashrc或~/bash_profile中的环境变量,shell模块由于没有加载,
			所有无法识别,如果需要使用自定义的环境变量,就需要在最开始,执行加载自定义脚本的语句.
			对shell模块的使用分为两种情况:
				1.执行语句少,可以写在一条语句中:
					eg2:ansible -m shell -a "soucre ~/.bash_profile && df -h | grep boot" hadoop
				2.如果在远程执行的语句较多时,可以写成一个脚本,通过copy模块传到远端,然后在执行,
				但这又涉及到两次ansible的调用,这时就建议使用scritpt模块. 
		script模块:在本地写一个脚本,在远程服务器上执行.
*/
案例1:使用script模块,在远程服务器上执行
[root@server1 ~]# ansible -m script -a "/etc/ansible/test_sh/net.sh" hadoop

2.2 copy模块

/*
	copy模块:实现主控端向目标主机拷贝文件,类似于scp
*/
案例1:把ansible主机上的/etc/hosts文件复制到节点机器的/tmp目录下
[root@server1 ~]# ansible -m copy -a "src=/etc/hosts dest=/tmp/ owner=root group=root mode=0755" hadoop

2.3 file模块

/*
	file模块:设置文件属性
*/
案例1:修改/tmp/hosts文件的权限为0777
[root@server1 ~]# ansible -m file -a "path=/tmp/hosts mode=0777" hadoop
[root@server1 ~]# ansible -m shell -a "ll /tmp/hosts" hadoop

2.4 stat模块

/*
	stat模块:获取远程节点文件的信息
*/
案例1:获取所有节点上/tmp目录下hosts文件信息
[root@server1 ~]# ansible -m stat -a "path=/tmp/hosts" hadoop

2.5 get_url模块

/*
	get_url模块:实现远程主机下载指定url到本地,支持sha256sum文件校验
	参数说明:
		force参数:
			如果force=yes,当下载文件时,如果所下的内容与源目录下的文件内容不一样,则替换源文件,如
			果一样,则不下载		
*/
案例1:下载epel-release-latest-7.noarch.rpm到主机清淡的/tmp目录下
[root@server1 ~]# ansible -m get_url -a "url=https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm dest=/tmp/ force=yes" hadoop
[root@server1 ~]# ansible -m shell -a "ls -l /tmp | grep rpm" hadoop

2.6 yum模块

/*
	yum模块:Linux平台软件包管理
		statue状态:
			安装:latest,present,installed
			卸载:removed,absent
*/
案例1:安装httpd软件
[root@server1 ~]# ansible -m yum -a "name=httpd state=latest" hadoop
[root@server1 ~]# ansible -m shell -a "rpm -qa | grep http" hadoop

2.7 cron模块

/*
	cron模块:远程主机crontab配置
*/
案例1:每30分钟执行ls /tmp
[root@server1 ~]# ansible -m cron -a "name='list dir' minute='*/30' job='ls /tmp'" hadoop
[root@server1 ~]# ansible -m shell -a "crontab -l" hadoop

2.8 service模块

/*
	service模块:远程主机系统服务管理
		常用参数:
			1.name参数:需要管理的服务名称
			2.state参数:用于指定服务的状态,
				started:启动远程服务
				stopped:停止远程主机的服务
				restarted:重启服务
				reloaded:重新加载服务
			3.enabled参数:
				yes:开机自启动
				no:开机不自启动
		注:若想使用service模块启动服务,被启动的服务,必须可以使用service命令启动或者关闭服务.
*/
案例1:远程启动apache服务
[root@server1 ~]# ansible -m service -a "name=httpd state=started" hadoop
[root@server1 ~]# ansible -m shell -a "netstat -antup | grep 80" hadoop

2.9 sysctl模块

/*
	sysctl模块:远程主机sysctl配置
*/
案例1:开启路由转发功能
[root@server1 ~]# ansible -m sysctl -a "name=net.ipv4.ip_forward value=1 reload=yes" hadoop
[root@server1 ~]# ansible -m shell -a "cat /proc/sys/net/ipv4/ip_forward" hadoop

2.10 user模块

/*
	user模块:远程主机管理
*/
[root@server1 ~]# ansible -m user -a "name=shutterbug state=present" hadoop
[root@server1 ~]# ansible -m shell -a "id shutterbug" hadoop
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:59:45  更:2021-11-12 20:01:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:36:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码