ansible安装及常用模块(代码片段)

Zhink Zhink     2022-10-25     451

关键词:

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

主机列表:/etc/ansible/hosts 

安装anslibe 

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install ansible

配置文件先备份

修改配置文件hosts添加主机组 (分组)

 

如果要远程连接需要配置用户名和密码或密钥(两种方式都可以)

用户密码:

[webtest]
192.168.32.132 ansible_ssh_user=root ansible_ssh_pass=登录密码
192.168.32.131 ansible_ssh_user=root ansible_ssh_pass=登录密码

密钥:

生成私钥和公钥 ssh-keygen -t rsa -P \'\'

注意文件权限:

[root@localhost .ssh]# cp id_rsa.pub authorized_keys
[root@localhost .ssh]# ll
total 16
-rw-r--r-- 1 root root  408 Mar 14 22:32 authorized_keys
-rw------- 1 root root 1679 Mar 14 22:32 id_rsa
-rw-r--r-- 1 root root  408 Mar 14 22:32 id_rsa.pub
-rw-r--r-- 1 root root  352 Mar 14 22:20 known_hosts
[root@localhost .ssh]# chmod 600 authorized_keys 
[root@localhost .ssh]# ll authorized_keys 
-rw------- 1 root root 408 Mar 14 22:32 authorized_keys

公钥分别发送到被管理的主机:

scp authorized_keys 192.168.32.132:/root/.ssh/
scp authorized_keys 192.168.32.131:/root/.ssh/

 测试OK:

 

常用模块:

注意:command和shell模块的核心参数直接为命令本身;而其它模块的参数通常为“key=value”格式

-m  command   (如下没写-m command 是因为默认模式是 command)

ansible测试:ping模块测试连通性

第一个要做的就是时间同步:

 首先使用ansible的yum模块批量安装ntpdate服务

ansible all -m yum -a "state=present name=ntpdate"

批量删除两种方式:

ansible all -m yum -a "state=removed name=ntpdate"
ansible all -m yum -a "state=absent name=ntpdate"

指定节点安装及删除:

安装:ansible 192.168.32.131 -m yum -a "state=present name=ntpdate"

删除:ansible 192.168.32.131 -m yum -a "state=remove name=ntpdate"

时间同步:

ansible all -a \'ntpdate ntp1.aliyun.com\'

获取模块列表:ansible-doc -l

获取指定模块的使用帮助:ansible-doc -s MOD_NAME

 创建用户:

copy模块:复制文件到远程主机

用法:

    (1) 复制文件

        -a "src=原地址 dest=目标地址   mode=644 权限 "

    (2) 给定内容生成文件

        -a "content=  dest=  "

 复制文件:

src原地址   dest目标地址  mode权限

注:如果文件存在将覆盖原文件,并没有提示操作需小心。

ansible all -m copy -a "src=/etc/ansible/hosts.bak dest=/opt/ mode=600"

file模块:

用法:

    (1) 创建目录:

        -a "path=  state=directory"

    (2) 创建链接文件:

        -a "path=  src=\\\'#\\\'" /p>

    (3) 删除文件:

        -a "path=  state=absent“

修改文件用户组属性:

ansible all -m file -a "path=/tmp/hosts.bak mode=644 owner=root group=root"

创建目录及修改属性:

创建目录
ansible webtest -m file -a "path=/opt/work state=directory"
修改组属性
ansible webtest -m file -a "path=/opt/work mode=755 owner=root group=root"

创建软链:

ansible all -m file -a "src=/opt/hosts.bak path=/tmp/hosts.link state=link"

 删除软链:

ansible all -m file -a "path=/tmp/hosts.link state=absent"

fetch模块:从远程主机取文件

批量取:
ansible all -m fetch -a "src=/opt/hosts.bak dest=/root"
指定主机取:
ansible 192.168.32.131 -m fetch -a "src=/opt/hosts.bak dest=/root"

cron模块:管理计划任务条目

 

用法:    

    -a ""

        minute=

        hour=

        day=

        month=

        weekday=

        job=

        name=

        user=

        state=present|absent

创建一个同步时间的计划任务,每5分钟同步一下服务器的时间

ansible all -m cron -a "minute=\'*/5\' job=\'/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null\' name=\'时间同步\'"

删除计划任务:

ansible all -m cron -a "name=\'时间同步\' state=absent"

hostname模块:管理主机名

 

用法:

    name=

ansible 192.168.32.131 -m hostname -a "name=CentOS_7"

yum模块:使用yum命令完成程序包管理

用法:首先,确定主机的yum源是可用的 yum info samba

    -a ""

        (1) name=  state=present|latest

        (2) name=  state=absent

批量安装samba
ansible all -m yum -a "name=samba" 或 ansible all -m yum -a "name=samba state=present  |   latest"
查看安装状态
ansible all -a "yum info samba"
删除samba
ansible all -m yum -a "name=samba state=absent"

service模块:服务管理

用法:  

-a ""

    name=

    state=

        started

        stopped

        restarted

    enabled=

    runlevel=

安装httpd

ansible all -m yum -a "name=httpd"

启动httpd

ansible all -m service -a "name=httpd state=started enabled=true"

关闭httpd服务

ansible all -m service -a "name=httpd state=stopped enabled=false"

group模块:增加或删除组

用法:

    -a ""

        name=

        state=

        system=

        gid=

创建组
ansible all -m group -a "name=ggg system=true"
删除组
ansible all -m group -a "name=ggg state=absent"

user模块:用户管理

使用格式:

    name= : 创建的用户名

    state= : present新增,absent删除

    force= : 删除用户的时候删除家目录

    system= : 创建系统用户

    uid= : 指定UID

    shell= : 指定shell

    home= : 指定用户家目录

创建用户
ansible all -m user -a "name=ggg system=true"
查看
ansible all -a "id ggg"
删除用户
ansible all -m user -a "name=ggg state=absent"

setup模块:收集主机里面的各种信息

信息太多,指定一台收集
ansible 192.168.32.131 -m setup

ansible概述及常用命令模块(代码片段)

Ansible概述及常用命令模块一、Ansible概述特点二、部署ansible1.使用yum安装epel源和ansible2.配置主机清单3.配置密钥对验证三、ansible常用命令行模块1.command模块2.shell模块3.cron模块4.user模块5.group模块6.copy模块7.file模块8.hostname模块9.ping... 查看详情

ansible概述及常用命令模块(代码片段)

Ansible概述及常用命令模块一、Ansible概述特点二、部署ansible1.使用yum安装epel源和ansible2.配置主机清单3.配置密钥对验证三、ansible常用命令行模块1.command模块2.shell模块3.cron模块4.user模块5.group模块6.copy模块7.file模块8.hostname模块9.ping... 查看详情

ansible使用一(ansible的安装及ansible常用模块的使用)(代码片段)

1、ansible概述        Ansible是一款基于Python开发的自动化运维工具,它不需要安装客户端,使用SSH进行通信,同时可支持系统账号认证或秘钥认证,也支持windows客户端。Ansible主要组成部分:  ... 查看详情

ansible自动化运维详解ansible管理方式常用参数及常用模块(代码片段)

文章目录ansible自动化运维详解(二)ansible管理方式、常用参数及常用模块一、ansible实现管理的方式二、ansible命令常用参数三、ansible基本颜色代表的信息四、ansible常用模块(1)4.1、command4.2、shell4.3、script4.4、cop... 查看详情

ansible自动化运维详解ansible管理方式常用参数及常用模块(代码片段)

文章目录ansible自动化运维详解(二)ansible管理方式、常用参数及常用模块一、ansible实现管理的方式二、ansible命令常用参数三、ansible基本颜色代表的信息四、ansible常用模块(1)4.1、command4.2、shell4.3、script4.4、cop... 查看详情

ansible自动化运维之ansible命令运行方式及常用参数和常用模块(代码片段)

Ansible常用模块ansible实现管理的方式演示环境Ad-Hoc执行方式获得帮助ansible命令运行方式及常用参数ansible输出不同颜色含义ansible中的常用模块1.command2.shell3.script4.copy5.fetch6.file7.archive8.unarchive9.hostname10.cron11.yum_repository12.dnf/yum13.s 查看详情

ansible自动化运维详解ansible管理方式常用参数及常用模块(代码片段)

文章目录ansible自动化运维详解(二)ansible管理方式、常用参数及常用模块一、ansible实现管理的方式二、ansible命令常用参数三、ansible基本颜色代表的信息四、ansible常用模块(1)4.1、command4.2、shell4.3、script4.4、cop... 查看详情

ansible命令应用之常用模块(持续更新中)(代码片段)

上一篇博客中主要介绍了Ansible概述及Ansible部署,详见以下链接自动化运维之Ansible概述及Ansible部署请添加链接描述本篇将介绍Ansible命令应用之常用模块,以实例的形式进行演示。Ansible可用参数-v:输出详细信息(可以使用多个v... 查看详情

ansible的安装及常用模块

简介Ansible基于Python语言实现,由Paramiko和PyYAML两个关键模块构建。Ansible特点:1、部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作。2、默认使用SSH(SecureShell)协议对设备进行管理。3、主从集中化管理。4、配置... 查看详情

ansible常用模块详解(代码片段)

Ansible可以使用命令行方式进行自动化管理,且ansible的命令行管理工具都是由一系列模块、参数支持的,我们可以通过ansible-doc工具查看模块帮助信息。本篇博文将详细讲述ansible模块功能及操作。Ansible命令参数:-v:输出详细信... 查看详情

ansible安装及基础模块介绍(代码片段)

ansible介绍Ansible基于Python开发,集合了众多优秀运维工具的优点,实现了批量运行命令部署程序、配置系统等功能。默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单... 查看详情

ansible------ansible概述,搭建,常用模块介绍(代码片段)

目录一.Ansible概述二.Ansible环境安装部署三.Ansible命令行模块1.command模块2.shell模块3.cron模块4.user模块5.group模块6.copy模块7.file模块8.hostname模块9.ping模块10.yum模块11.service/systemd模块12.script模块13.setup模块一.Ansible概述Ansible是一个基于P... 查看详情

ansible安装及部分模块初步使用(代码片段)

Ansible安装及初步使用Ansible概述由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统的方式进行维护工作会使得工作效率低下。这时,部署自动化运维就可以尽可能安全... 查看详情

ansible学习总结——ansible常用模块与playbook实例讲解(代码片段)

一、Ansible 安装下载安装并解压 python3.7包安装 wget yum-yinstallwget下载python文件 wgethttps://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz(离线安装需提前准备压缩包)解压文件 tarzxvfPython-3.7.0.tgz切换目录 cdPython-3.7.0 查看详情

ansiblead-hoc常用命令(代码片段)

AnsibleAd-Hoc常用命令Ansible可以通过命令行形式使用它的模块,Ansible自带了很多模块,可以直接使用这些模块。目前Ansible已经自带了259个模块,可以通过ansible-doc-l显示所有自带的模块,也可以通过ansible-doc-s模块名查看模块的介绍... 查看详情

ansible自动化运维详解ansible常用模块续(代码片段)

文章目录ansible自动化运维详解(三)ansible常用模块续四、ansible常用模块(2)4.10、yum_repository4.11、dnf4.12、service及firewalld4.13、group4.14、user4.15、lineinfile4.16、replace4.17、setup4.18、debugansible自 查看详情

ansible自动化运维详解ansible常用模块续(代码片段)

文章目录ansible自动化运维详解(三)ansible常用模块续四、ansible常用模块(2)4.10、yum_repository4.11、dnf4.12、service及firewalld4.13、group4.14、user4.15、lineinfile4.16、replace4.17、setup4.18、debugansible自 查看详情

ansible学习01-常用模块(代码片段)

1.command命令模块默认模块[email protected]:/data/sh#ansibledocker-a"hostname"192.168.1.124|success|rc=0>>centos-mysql01172.17.0.2|success|rc=0>>17466f2471eescript模块yum安装软件模块[email protec 查看详情