john_linux线上自动化运维工具

本文介绍了如何使用Ansible这款基于Python的自动化运维工具进行Linux系统的管理,包括安装、工作原理、配置及常见模块的使用,如文件管理、用户与权限、计划任务等,展示了Ansible在批量自动化运维中的强大功能。
摘要由CSDN通过智能技术生成

ansible(基于python开发的工具)
安装
yum -y install epel-release #在线安装最新的yum源
yum -y install ansible
##################################################################
工作原理

##################################################################
配置
/etc/ansible/hosts //配置远程管理的主机列表信息,主机名,主机地址,主机相关属性
/etc/ansible/ansible.cfg //配置ansible全局参数

使用
ansible 主机地址/主机组名/all -m 模块 -a ‘模块的命令’ -k 在交互模式下输入密码


command 不可识别模块命令中特舒符号“ < > | & -”
shell 可以识别模块中特殊符号,但command模块更安全
raw 模块不需要远程主机具备python环境,常用于,路由器,交换机的远程操作,且不具有“create ,remove ,chdir ”这些命令


ansible 主机 -m 模块 -a ‘模块的命令’ -b --become-method=su -K 把命令执行权限提升到root权限
ansible 主机 -m 模块 -a ‘模块的命令’ -b --become-method=sudo -K 在远程的普通用户下以管理员身份执行命令
script 把本机的脚本,复制到远端服务,然后执行脚本,执行完成后,删除脚本,eq:script -a “/data/test.sh > /tmp/test.log”
file 使用文件模块创建文件或目录,
file模块包含如下选项:
force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
group:定义文件/目录的属组
mode:定义文件/目录的权限
owner:定义文件/目录的属主
path:必选项,定义文件/目录的路径
recurse:递归的设置文件的属性,只对目录有效
src:要被链接的源文件的路径,只应用于state=link的情况
dest:被链接到的目标路径,只应用于state=link的情况
state: 有如下几个选项:
directory:表示目录,如果目录不存在,则创建目录。
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消链接文件。
eq:
ansible 172.16.213.233 -m file -a “path=/mnt/abc123 state=directory”
ansible 172.16.213.233 -m file -a “path=/mnt/abc123 owner=nobody group=nobody mode=0644 recurse=yes”
ansible 172.16.213.233 -m file -a “path=/mnt/syncfile.txt owner=sshd group=sshd mode=0644”
ansible 172.16.213.233 -m file -a “path=/mnt/syncfile.txt mode=0444”
ansible 172.16.213.233 -m file -a “src=/etc/ssh/sshd_config dest=/mnt/sshd_config owner=sshd state=link”
ansible 172.16.213.233 -m file -a “path=/tmp/backup.tar.gz state=absent”
ansible 172.16.213.233 -m file -a “path=/tmp/ansibletemp state=touch”

copy 使用copy模块把本地文件或目录复制到远程主机
copy模块包含如下选项:
backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no
content:用于替代”src”,可以直接设定指定文件的值
dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
directory_mode:递归的设定目录的权限,默认为系统默认权限
force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
others:所有的file模块里的选项都可以在这里使用
src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用”/”来结尾,则只复制目录里的内容,如果没有使用”/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
eq:
ansible 172.16.213.233 -m copy -a ‘src=/etc/sudoers dest=/app/sudoers owner=root group=root mode=440 backup=yes’
ansible 172.16.213.233 -m copy -a “src=/etc/sudoers dest=/app/sudoers validate=‘visudo -cf %s’”
ansible 172.16.213.233 -m copy -a ‘src=/etc/yum dest=/app/ owner=root group=root directory_mode=644’
ansible 172.16.213.233 -m copy -a ‘src=/etc/yum/ dest=/app/bak owner=root group=roo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值