首页 > 系统相关 >centos7 ansible的简单使用

centos7 ansible的简单使用

时间:2022-10-14 15:11:15浏览次数:80  
标签:文件 name 主机 centos7 ansible 简单 yes 远程

0、介绍

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

1、安装

yum install epel-release
yum install ansible

2、修改ansible配置文件

(1)配置文件

/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改)
/etc/ansible/hosts 主机清单(将被管理的主机放到此文件)
/etc/ansible/roles/ 存放角色的目录

(2)修改几个地方方便使用

vi /etc/ansible/ansible.cfg

host_key_checking = False               # 检查对应服务器的host_key,建议取消注释
log_path=/var/log/ansible.log           # 日志文件,建议取消注释
module_name   = command                 # 默认模块,建议取消注释

3、配置要操作的机器

ansible需要远程进去要操作的机器,因此需要提前把要控制的机器都配好ssh,使用ssh root@xxx.xx.xx.xx可以连接进去

vim /etc/ansible/hosts

在里面添加要远程控制的机器的IP以及用户名密码

image-20221012172806417

配置完后,先看一看能不能都ping通

执行命令ansible all -m ping

image-20221012172946822

4、常用命令及模块

命令

  • 列出所有主机 ansible all --list

  • ping所有主机 ansible all -m ping

模块

copy 模块

功能:将本机的文件拷贝到远程主机中

参数:

  • src参数 :用于指定需要copy的文件或目录。

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

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

  • force参数 : 当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,可选值有yes和no,默认值为yes,表示覆盖,如果设置为no,则不会执行覆盖拷贝操作,远程主机中的文件保持不变。

  • backup参数 : 当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否对远程主机的文件进行备份,可选值有yes和no,当设置为yes时,会先备份远程主机中的文件,然后再将ansible主机中的文件拷贝到远程主机。

  • owner参数 : 指定文件拷贝到远程主机后的属主,但是远程主机上必须有对应的用户,否则会报错。

  • group参数 : 指定文件拷贝到远程主机后的属组,但是远程主机上必须有对应的组,否则会报错。

  • mode参数 : 指定文件拷贝到远程主机后的权限,如果你想将权限设置为”rw-r--r--“,则可以使用mode=0644表示,如果你想要在user对应的权限位上添加执行权限,则可以使用mode=u+x表示。

示例

  • 拷贝单个文件|拷贝多个文件|拷贝目录
---
- hosts: all               # 目标主机组或名
  remote_user: root
  gather_facts: false       # 不收集对应主机的信息
  tasks:
    - name: 拷贝单个文件
      copy:
        src: "aaa.txt"
        dest: "/home/tmp/ansible/copy_single_file/"
        owner: root
        group: root
        mode: 0755
        backup: yes

    - name: 拷贝多个文件
      copy:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
        owner: root
        group: root
        mode: 0755
        backup: yes
      with_items:
          - { src: "bbb.sh", dest: "/home/tmp/ansible/copy_single_file/" }
          - { src: "ccc.txt", dest: "/home/tmp/ansible/copy_single_file/" }

    - name: 拷贝目录
      copy:
        src: "eee/"
        dest: "/home/tmp/ansible/copy_single_file/eee/"
        owner: root
        group: root
        mode: 0755
        backup: yes

https://blog.csdn.net/qq_39677803/article/details/123040746

service模块

功能:调整远程服务器的服务(启动|停止|重启|开机自启|开机非自启)

参数:

参数名 必填 默认值 选项 备注
name yes 需要进行操作的service名字
state no stared/stoped/restarted/reloaded service最终操作后的状态。
enabled no yes/no 是否开机自启动
enabledstate至少要有一个被定义

示例

---
- hosts: all
  tasks:
    - name: 启动服务
      service:
        name: "{{ item }}"       # 服务名
        enabled: yes      # 是否开机自启
        state: started    # 启动
      loop: [firewalld,nginx]    # 要循环的列表

    - name: 停止服务
      service:
        name: "{{ item }}"            # 服务名
        enabled: no        # 是否开机自启
        state: stopped        # 启动
      loop: [ firewalld ]    # 要循环的列表

    - name: 重启服务
      service:
        name: "{{ item }}"            # 服务名
        enabled: yes        # 是否开机自启
        state: restarted        # 启动
      loop: [ nginx ]    # 要循环的列表

https://blog.csdn.net/omaidb/article/details/120919481

参考链接:

https://blog.csdn.net/A_art_xiang/article/details/120524817

标签:文件,name,主机,centos7,ansible,简单,yes,远程
From: https://www.cnblogs.com/rainbow-tan/p/16791642.html

相关文章

  • centos7 安装kafka3.3.1
    1、安装kafka(要先安装jdk)#进入自己要安装的目录wgethttps://downloads.apache.org/kafka/3.3.1/kafka_2.12-3.3.1.tgz2、解压tar-zxvfkafka_2.12-3.3.1.tgz#改......
  • [译] PEP 255--简单的生成器
     我正打算写写Python的生成器,然而查资料时发现,引入生成器的PEP没人翻译过,因此就花了点时间翻译出来。如果在阅读时,你有读不懂的地方,不用怀疑,极有可能是我译得不到位。......
  • 电子表格也能做购物车?简单三步就能实现
    在我们的项目当中,经常需要添加一些选择界面,让用户直观地进行交互,比如耗材、办公用品、设计稿或者其它可以选择的内容。在线商城的商品目录和购物车无疑是一种大家都很熟悉......
  • ansible 安装级使用:长期更新
    ansible入门1、简介Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作......
  • JavaScript简单特效:页面背景颜色在线改变
    基于JavaScript以及canvas实现输入颜色预览以及背景颜色变为输入颜色值的效果。输入框中默认值为黑色,下方画布显示该颜色。通过输入新的颜色值后,点击【显示颜色】按钮,画......
  • 【前端】【JavaScript】简单的加减乘除计算器
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><inputtype="text"id="number1"><selectid="s......
  • Session用法案例 -->实现简单购物车功能(实际项目可能不会这么使用)
    071201709091、session是在cookie的基础之上,利用cookie返回JSESSIONID(key[服务器随机生成])存在客户端实现,正真的数据存在服务端[key-value]。2、se......
  • 实现简单的vue-router
    1.使用vue-cli创建一个配置Router,且是history模式的项目,可以看到使用vue-router的相关代码://route-demo/src/router/index.jsimportVuefrom'vue'importVueRouterf......
  • centos7 中manta软件的安装
     001、系统(base)[root@pc1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core) 002、下载安装包wgethttps://github.com/Illumina/manta/arc......
  • CentOS firewall简单总结
    CentOSfirewall简单总结简介防火墙是安全的重要道防线.硬件防火墙一般部署再内网的边界区域.作为最外层的防护.但是一般硬件的防火墙会比较宽松.不然会导致很多业......