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轻松上手

准备环境

功能内网
ansible192.168.1.20
work1192.168.1.21
work2192.168.1.22
work3192.168.1.23

ansible主机部署

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

2.安装ansible
	yum install -y ansible

3.编写ssh分发脚本
	vi auto_ssh.sh
#/bin/bash

SERVERS="192.168.1.21 192.168.1.22 192.168.1.23"   #需要配置的主机名
USER="root"       #用户
PASSWORD="root"   #需要配置的主机登录密码

auto_ssh_copy_id(){
        expect -c "set timeout -1;
        spawn ssh-copy-id $1;                                
        expect {
                *(yes/no)* {send -- yes\r;exp_continue;}
                *password:* {send -- $2\r;exp_continue;}  
                eof        {exit 0;}
        }";
}

ssh_copy_id_to_all(){
        for SERVER in $SERVERS #遍历要发送到各个主机的ip
           do
                auto_ssh_copy_id $USER@$SERVER $PASSWORD
           done
}
ssh_copy_id_to_all

4.使用ssh脚本
	sh 	auto_ssh.sh

ansible主机测试

1.查看ansible配置文件路径
	rpm -qc ansible

2.查看ansible模块总数
	ansible-doc -l |wc -l

3.添加主机清单
	vi /etc/ansible/hosts 
[webservers]
192.168.1.21
192.168.1.22
192.168.1.23

4.使用ansible 模块ping 检测
	ansible webservers -m ping 

ansible常用模块

command : 执行一些简单的Linux命令,加上任意符号都不能执行

删除一个文件
	ansible webservers  -a 'rm -f /root/anaconda-ks.cfg'

shell : command的增强版,此模块不具有安全性,命令会重复执行

创建一个目录
	ansible webservers -m shell -a 'mkdir -p /www/html/'

Script模块 :在远程主机上运行ansible服务器上的脚本

编写脚本
	vi hostname.sh
		hostname -i
		
执行脚本
	ansible webservers -m script -a './hostname.sh'

Copy模块 : 复制ansible服务器的文件到远程主机端

复制粘贴hello.txt
	ansible webservers -m copy -a 'src=hello.txt dest=/root/'

src=ansible文件路径
dest=目标文件路径

Get_url : 用于将文件从互联网或者ftp下载到被管理机器上

下载nginx压缩包
	ansible webservers -m get_url -a 'url=http://nginx.org/download/nginx-1.18.0.tar.gz dest=/root/nginx.tar.gz'

Fetch 模块 : 用于将被管理机器的文件传送至ansible上

传输hello.txt
	ansible webservers -m fetch -a 'src=/root/hello.txt dest=/root/'

src=被管理者文件路径
dest=管理者文件路径

File模块 : 设置文件属性,创建软连接等

创建一个MySQL目录
	ansible webservers -m file -a "path=/data/mysql state=directory"

unarchive模块 : 解包解压缩

解压nginx压缩包
	ansible webservers -m unarchive -a 'src=/root/nginx.tar.gz dest=/root copy=no'

src=目标文件路径
dest=目标解压路径
copy=是否为ansible主机

Archive模块 : 打包压缩保存在被管理节点

目标主机的log日志压缩给ansible
	ansible webservers -m archive -a "path=/var/log/ dest=/tmp/log.tar.gz"

path=目标路径
dest=ansible路径

HostName模块 :管理主机名

 ansible 192.168.1.21 -m hostname -a 'name=worker1_upt'

Cron模块 : 定时任务

创建数据库备份脚本
	vi /root/mysql_bakup.sh
		mysqldump -A -F --single-transaction --master-data=2 -q -uroot gzip /data/mysq1_date +%F_%T.sq1.gz

创建任务
	ansible webservers -m cron -a 'hour=2 minute=30 weekday=1-5 name="backup mysq1" job=/root/mysq1_backup.sh'

name:定时任务名字
job:ansible主机脚本路径

yum和apt模块 : 安装软件

安装vsftpd服务
	ansible webservers -m yum -a 'name=vsftpd'

name=软件名
state=absent 卸载

server 模块: 管理服务状态

开启vsftpd服务并设为自启动
	ansible webservers -m serviace -a 'name=vsftpd state=started enabled=yes'

name=软件名
state=状态
enable=是否自启动

User模块 : 管理用户

创建用户
	 ansible webservers -m user -a 'name=zhangsan comment="test user" uid=2048 home=/app/user1 group=root'

name=用户名
comment=注释
uid=标识号
home=家目录
group=组
state=是否保留(present,absent)
remove=yes 删除用户数据

Group模块 :管理组

创建nginx组
	ansible webservers -m group -a 'name=nginx gid=88 system=yes'

name=组名
gid=标识号

删除nginx组
	ansible webservers -m group -a 'name=nginx state=absent'

state=是否保留

replace模块 :文件修改

将挂载文件内容首行加上#注释
	 ansible webservers -m replace -a "path=etc/fstab regexp='^(UUID.*)' replace='#\1' "

将挂载文件注释删除
	ansible webservers -m replace -a "path=/etc/fstab regexp='^#(UUID.*)' replace='\1' "

setup 模块:主机系统信息

查询192.168.1.21的主机详细信息
	ansible 192.168.1.21 -m setup 

查询信息并追加到文本
	ansible 192.168.1.21 -m setup > work1.txt

debug 模块 :测试yaml文件

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/2 0:43:54-

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