ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux基础15-Ansible自动化运维

2022-05-05 19:33:44  阅读:210  来源: 互联网

标签:ftp 15 运维 主机 指定 ansible Linux 此参数 远程


安装Ansible软件包

yum -y install wget #下载wget工具

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #下载阿里Base源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #下载阿里epel源

ansible --version  #查看ansible版本信息

定义Ansible主机清单

ansible主配置文件:/etc/ansible/ansible.cfg

ansible默认清单文件:/etc/ansible/hosts

列出指定组内主机列表:ansible 组名 --list-host

ansible-doc命令介绍

ansible-doc  #模块文档命令

常用选项:

-l  #列出所有模块列表

-s  #查看模块帮助信息

Ansible命令返回值的颜色表示:

绿色:代表对远程节点不进行相应修改,没有发生改变,命令执行成功了

黄色:代表对远程节点进行了相应修改,命令执行成功了

红色:代表你的命令执行失败或者是有异常

粉色:代表命令执行后发出的警告信息,可忽略

Ansible执行命令的方式

ad-doc:在命令行执行的命令(临时命令)

Playbook:将命令写入到Playbook剧本中

Ansible命令格式介绍

ansible 组名/主机 [-m 模块名] [-a 模块参数]

Ansible常用模块介绍

command模块

默认模块,用于远程执行命令

注意:特殊符号功能会失效

常用参数

chdir:此参数表示执行命令之前,会先进入到指定的目录中

creates:此参数表示文件如果存在于远程主机中,则不执行对应命令,如果不存在,才执行

removes:此参数表示文件如果存在于远程主机中,则执行对应命令,如果不存在,则不执行

shell模块

远程执行命令,通过/bin/bash程序处理命令

常用参数

cmd:此参数指定用于执行的命令(用于Playbook剧本中)

chdir、creates、removes与command模块作用一致

script模块

用于远程执行脚本,脚本存放在ansible主机本地,不需要拷贝至远程主机

常用参数:

chdir、creates、removes:与command作用一致

执行脚本举例:ansible 组名/主机 -m script -a '脚本'

yum模块

用于远程主机通过yum源管理软件包

常用参数

name:必须参数,用于指定需要管理的软件包名字

state:用于指定软件包的状态

  present:此状态为默认值,表示安装软件包

  installed:此状态表示安装软件包

  latest:此状态表示安装最新版本软件包

  removed:此状态表示删除对应软件包

  absent:此状态表示删除对应软件包

service模块

用于管理远程主机的服务

常用参数:

name:此参数用于指定需要操作的服务名称

state:此参数用于指定服务的状态

  started:此状态用于启动服务

  restarted:此状态用于重启服务

  stopped:此状态用于停止服务

  enabled:此参数用于指定是否将服务设置为开机启动项,yes开机启动,no不会开机启动

copy模块

用于将文件复制到远程主机

常用参数:

src:此参数用于指定需要拷贝的文件或目录

dest:此参数用于指定文件将拷贝到远程主机的哪个目录中,dest为必须参数

将本地/tmp/test.txt文件拷贝至ftp组内主机的/avr/ftp目录下

ansible ftp -m copy -a 'src=/tmp/test.txt dest=/var/ftp/'

content:此参数当不使用src指定拷贝的文件时,可使用content直接指定文件内容,src与content必有其一,否则会报错

使用content参数在远程主机直接创建文件并写入内容

ansible ftp -m copy -a 'content="hello" dest=/var/ftp/test1'

force:此参数当远程主机的目标路径中已存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,yes覆盖,no不覆盖

ansible ftp -m copy -a 'src=/tmp/test1 dest=/var/ftp/test1 force=no'

backup:此参数当远程主机的目标路径中已存在同名文件,并与ansible主机中文件内容不同时是否对远程主机的文件进行备份,yes备份

 ansible ftp -m copy -a 'src=/root/test1 dest=/var/ftp backup=yes'

owner:此参数指定文件拷贝到远程主机后的属主

ansible ftp -m copy -a 'src=/root/test2 dest=/var/ftp/ owner=ftp'

group:此参数指定文件拷贝到远程主机后的属组

ansible ftp -m copy -a 'src=/root/test3 dest=/var/ftp/ owner=ftp group=ftp'

mode:此参数指定文件拷贝到远程主机后的权限

拷贝test4文件到远程主机,并指定属主为ftp用户,所属组为ftp用户基本组,并指定权限为0744

ansible ftp -m copy -a 'src=/root/test4 dest=/var/ftp/ owner=ftp group=ftp mode=0744'

Ansible剧本Playbook

需遵循YAML语法格式编写,文件名以".yaml"或".yml"作为文件名后缀

核心元素

hosts:执行的远程主机列表

tasks:任务集

variables:内置变量或自定义变量在playbook中调用

tempaltes模板,可替换文件中的变量并实现一些简单逻辑的文件

handles和notify结合使用,由特定条件触发的操作,满足条件才执行

tags标签,指定某条任务执行,用于选择运行playbook中的部分代码

使用ping模块测试远程主机联通性,并在远程主机创建目录

vim ping_websrvs.yml

---  #第一行:playbook剧本以---开头表明yaml格式文件

- hosts: websrvs  #第二行:使用”- “作为开头,”- “表示一个列表项,”- “后面使用hosts关键字指定要操作的主机组名,(注意:横杠后面有空格)表示我要在websrvs这组主机上进行操作,在YAML语法中,键值对需要使用冒号作为分隔,而且冒号后边必须还要有一个空格作为分隔

  remote_user: root  #第三行:remote_user关键字可以指定在进行远程操作时使用哪个用户进行操作

  tasks:  #第四行:tasks关键字是用来指定要执行哪些操作任务,之后的行都属于tasks任务列表中的任务,每个任务都以”- “开头,每个任务都有自己的名字,任务名使用name关键字进行指定

  - name:ping websrvs

    ping:

  -name: mkdir dir test

    shell:

      cmd: mkdir /test

 运行剧本需要使用'ansible-palybook'命令

ansible-playbook ping_websrvs.yml

--syntax-check 用于检测playbook语法是否正确,如果正确只返回playbook名称

ansible-playbook --syntax-check ping_websrvs.yml

--check 用于模拟执行playbook

ansible-playbook --check ping_websrvs.yml

标签:ftp,15,运维,主机,指定,ansible,Linux,此参数,远程
来源: https://www.cnblogs.com/lxw0829/p/16226010.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有