ansible特点、工具合集、搭建、命令合集

这篇具有很好参考价值的文章主要介绍了ansible特点、工具合集、搭建、命令合集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、ansible特点

二、ansible应用 

三、ansible搭建

1、 实验环境,准备三台服务器,关闭防火墙

2、在ansible(192.168.1.12)服务器上yum安装ansible

3、创建ssh免交互登录

四、ansible配置

五、ansible命令

1)ansible

2)ansible-doc

3)ansible-playbook

4) ansible-console 


一、ansible特点

  1. Ansible基于python开发,运维工程师对其二次开发相对容易
  2. Ansible拥有丰富的内置模块,基本可以满足一切要求
  3. 管理模式非常简单,一条命令可以影响上千台机器
  4. 无客户端模式设计,底层基于SSH通信
  5. Ansible发布后也陆续被AWS,Google,Cloud Platfrom,Microsoft Azure,Cisco,HP,VMware,Twitter等大公司接纳并投入使用

二、ansible应用 

Ansible工具集合了inventory,Moudles,Plugins和API。其中,inventory用来管理设备列表,可以通过分组(不同的业务)实现,对组的调用直接影响组内所有的主机;Moudles是各种执行模块,几乎所有的管理任务都是通过模块来执行的;Plugins提供了各种附加功能;API为编程人员提供了一个调用接口,可以做Ansible的二次开发具体表现如下:

  1. Ansible Playbook:任务脚本,编排定义Ansible任务集的配置文件,由Ansible按序依次执行,通常是JSON格式的YML/YAML文件;
  2. inventory:Ansible管理主机清单
  3. Moudle:Ansible执行命令功能模块,多数为内置的核心模块也可以用户自定义;
  4. Plugins:模块功能的补充,如连接类型插件,循环插件,变量插件,过滤插件等,该功能不常用。
  5. API:提供第三方程序调用的应用程序编程接口;

三、ansible搭建

1、 实验环境,准备三台服务器,关闭防火墙

192.168.1.12    ansible

192.168.1.133  client1

192.168.1.134  client2

[root@ansible ~] systemctl stop firewalld
[root@ansible ~] setenforce 0
[root@ansible ~] iptables -F
2、在ansible(192.168.1.12)服务器上yum安装ansible
[root@ansible ~] yum -y install epel-release
[root@ansible ~] yum -y install ansible
3、创建ssh免交互登录
[root@ansible ~] ssh-keygen -t rsa
[root@ansible ~] ssh-copy-id root@192.168.1.133
[root@ansible ~] ssh-copy-id root@192.168.1.134

[root@client1 ~] ssh 192.168.1.12  #测试一下,没有问题
Last login: Fri Jul 14 09:36:20 2023 from 192.168.1.108
[root@ansible ~] exit
登出
[root@client1 ~] ssh 192.168.1.134
Last login: Fri Jul 14 09:37:07 2023 from 192.168.1.108
[root@client2 ~] exit
登出

四、ansible配置

1、inventory是Ansible管理主机信息的配置文件,相当于系统的Hosts文件功能,默认存放在/etc/ansible/hosts。在hosts文件中通过分组来组织设备,Ansible通过inventory来定义主机和分组,通过ansible命令中是用选项-i或者--inventory-file指定inventory。

[root@ansible ~] cp /etc/ansible/hosts{,.bak}
[root@ansible ~] vim /etc/ansible/hosts
[Rich]  #自己起个名字
192.168.1.133
192.168.1.134

[root@ansible ~]# ansible -i /etc/ansible/hosts Rich -m ping
192.168.1.133 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.134 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

2、配置完成后可以针对hosts定义服务组件进行远程操作,也可以针对组中的指定的某一个或多个主机操作,下面接收如何针对特定的服务器操作

1)针对Rich组中的192.168.200.112主机操作,通--limit参数限定主机的变更

[root@ansible ~] ansible Rich -m command -a "head -5 /etc/passwd" 
192.168.1.133 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
192.168.1.134 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

2)只对192.168.200.0网段主机进行操作。通过通配符限定主机变更

[root@ansible ~] ansible 192.168.1.* -m command -a "head -5 /etc/passwd"

192.168.1.133 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
192.168.1.134 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

五、ansible命令

1、Ansible的维护命令大多以ansible开头,在终端输入ansible后连续按两次tab键,会补全所有以ansible字母开头的命令。

[root@ansible ~] ansible 
anaconda-ks.cfg  .bash_logout     .cshrc           .tcshrc
.ansible/        .bash_profile    .pki/            .viminfo
.bash_history    .bashrc          .ssh/            
[root@ansible ~] ansible-
ansible-2             ansible-doc-2         ansible-playbook-2.7
ansible-2.7           ansible-doc-2.7       ansible-pull
ansible-config        ansible-galaxy        ansible-pull-2
ansible-connection    ansible-galaxy-2      ansible-pull-2.7
ansible-console       ansible-galaxy-2.7    ansible-vault
ansible-console-2     ansible-inventory     ansible-vault-2
ansible-console-2.7   ansible-playbook      ansible-vault-2.7
ansible-doc           ansible-playbook-2   
1)ansible

Ansible是生产环境中使用非常频繁的命令之一,主要在以下场景应用

  1. 非固化需求
  2. 临时一次性操作
  3. 二次开发接口调用语法ansible <host-pattern> [options]

语法:ansible <host-pattern> [options] 

常用:

ansible               ansible-console       ansible-doc-2.7       ansible-playbook      ansible-pull-2.7

ansible-2             ansible-console-2     ansible-galaxy        ansible-playbook-2    ansible-test

ansible-2.7           ansible-console-2.7   ansible-galaxy-2      ansible-playbook-2.7  ansible-vault

ansible-config        ansible-doc           ansible-galaxy-2.7    ansible-pull          ansible-vault-2

ansible-connection    ansible-doc-2         ansible-inventory     ansible-pull-2

可用选项如下

  • -v(--verbose):输出详细的执行过程信息,可以得到执行过程所有信息
  • -i PATH(inventory=PATH):指定inventory信息,默认为/etc/ansible/hosts
  • -f NUM(--forks=NUM):并发线程数,默认为5个线程
  • --private-key=PRIVATE_KEY_FILE:指定密钥文件
  • -m NAME,--moudle-name=NAME:指定执行时使用的模块
  • -M DIRECTORY(--module-path=DIRECTORY):指定模块存放路径,默认为/usr/share/ansible,也可以通过ANSIBLE_LIBRARY设定默认目录
  • -a ARGUMENTS(--args=ARGUMENTS):指定模块参数
  • -u USERNAME(--user=USERNAME):指定远程主机USERNAME运行命令
  • -l subset(--limit=SUBSET):限定运行主机
  • --list-hosts:列出符合条件的主机列表,不执行任何命令

 举例

检查所有主机是否存活
[root@ansible ~] ansible all -f 5 -m ping
192.168.1.134 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.133 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
列出Rich组中所有主机列表
[root@ansible ~] ansible Rich --list-host
  hosts (2):
    192.168.1.133
    192.168.1.134
批量显示Rich组中的磁盘使用情况
[root@ansible ~] ansible Rich -m command -a "df -Th"
192.168.1.133 | CHANGED | rc=0 >>
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  898M     0  898M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.8G   16G   11% /
/dev/sda1               xfs      1014M  195M  820M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
192.168.1.134 | CHANGED | rc=0 >>
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  898M     0  898M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  195M  820M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/sr0                iso9660   9.5G  9.5G     0  100% /media/cdrom
  1. Rich需要提前在/etc/ansible/hosts文件中定义组
  2. Ansible的返回结果非常友好,一般会用三种颜色执行结果:红色,绿色和橘黄色,其中红色表示执行过程中有异常,橘黄色表示命令执行后目标有状态变化,绿色表示执行成功且没有对目标机器做修改
2)ansible-doc

语法ansible-doc [options] [module......]

 ansible-doc用来查询ansible模块文档的说明,类似于man命令,针对每个模块都有详细的用法说明及应用案例介绍

[root@ansible ~]# ansible-doc -l #查看总帮助

[root@ansible ~]# ansible-doc -s shell #查看shell模块的帮助

[root@ansible ~]# ansible-doc -s raw

1)列出支持的模块

[root@ansible ~] ansible-doc -l
fortios_router_community_list                                 Configure commun...
azure_rm_devtestlab_info                                      Get Azure DevTes...
ecs_taskdefinition                                            register a task ...
avi_alertscriptconfig                                         Module for setup...
tower_receive                                                 Receive assets f...

2)查询ping模块的说明信息

root@ansible ~] ansible-doc ping 			#=ansible-doc -s ping
> PING    (/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py)

        A trivial test module, this module always returns `pong' on successful contact. It
        does not make sense in playbooks, but it is useful from `/usr/bin/ansible' to verify
3)ansible-playbook

语法:ansible-playbook playbook.yml

Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux系统中的sh或source命令,用来执行系列任务,其工作机制是,通过读取编写好的playbook文件实现集中处理任务,ansible-playbook命令后跟yml或者yaml格式的playbook文件,playbook文件存放了要执行的任务代码

4) ansible-console 

ansible-console是ansible为用户提供的一款交互式工具,类似于Windows中的cmd以及Linux中的shell,用户可以在ansible-console虚拟出来的终端上做像shell一样使用ansible内置的各种命令,这为习惯于使用shell交互方式的用户提供了良好的体验,在终端输入ansible-console命令后显示如下文章来源地址https://www.toymoban.com/news/detail-570681.html

[root@ansible ~] ansible-console
Welcome to the ansible console.
Type help or ? to list commands.
root@all (2)[f:5]$ cd Rich
root@Rich (2)[f:5]$ list
192.168.1.133
192.168.1.134
root@Rich (2)[f:5]$ exit

到了这里,关于ansible特点、工具合集、搭建、命令合集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ansible 常用命令50条

    以下是 Ansible 常用的 50 条命令: ansible --version : 查看 Ansible 版本信息。 ansible all -m ping : 检查所有主机的连通性。 ansible-playbook playbook.yml : 运行指定的 Ansible Playbook 文件。 ansible-doc module_name : 查看指定模块的帮助文档。 ansible-config view : 查看当前 Ansible 配置信息。 ansible-inve

    2024年02月10日
    浏览(32)
  • 创建和运行 Ansible 临时命令

        作为系统管理员,您需要在受管节点上安装软件。     请按照正文所述,创建一个名为 /home/curtis/ansible/adhoc.sh 的 shell 脚本,该脚本将使用 Ansible 临时命令在各个受管节点上安装 yum 存储库:     存储库1:         存储库的名称为 EX294_BASE         描述为 EX294 base soft

    2024年02月12日
    浏览(52)
  • Ansible基础和命令行模块操作

       _   Ansible是一个基于  Python开发  的配置管理和应用部署工具,现在也在 自动化管理 领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。    1.Ansible能做什么?

    2024年02月01日
    浏览(37)
  • Ansible命令格式和常用模块介绍

    ansible [群组名] -m [模块名] -a [参数] command模块为默认模块,用于远程执行命令(命令模块) 使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行命令中的含\\\"\\\",\\\"\\\",\\\"|\\\",\\\"\\\"等特殊符号时,这些符号功能会失效 常用参数: command模块

    2024年01月19日
    浏览(39)
  • ansible搭建

    * 部署简单 * **默认使用ssh进行管理,基于python里的==paramiko==模块开发** * 管理端和被管理端不需要启动服务 * 配置简单,功能强大,扩展性强 * 能过playbook(剧本)进行多个任务的编排 实验准备三台机器,一台管理机 192.168.115.3,两台被管理机 192.168.115.4 192.168.115.5 #所有主机都要

    2024年02月09日
    浏览(22)
  • 【Ansible】Ansible自动化运维工具之playbook剧本

      简单来说,playbooks是一种简单的配置管理系统与多机器部署系统的基础。与现有的其他系统有不同之处,且非常适合复杂应用的部署。   Playbooks 可用于声明配置,更强大的地方在于,playbooks可以编排有序的去执行过程,甚至做到多组机器间来回有序的执行特别指定的

    2024年02月14日
    浏览(39)
  • Ansible自动化部署工具

    1、运维工具特点 Ansible 与 Saltstack 均是基于 Python 语言开发,Ansible 只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理,而Linux服务器大都离不开SSH,所以Ansible不需要为配置工作添加额外的支持。 Ansible 安装使用非常

    2024年02月01日
    浏览(46)
  • ansible的部署和命令模块和playbooks剧本

    ` Ansible是基于模块工作的,只是提供了一种运行框架,本身没有完成任务的能力,真正操作的是Anisble的模块。每个模块都是独立的、实现了批量系统配置、批量程序部署、批量运行命令等功能。 优势: ①轻便性:无需在被控制服务器上安装客户端,Ansible基于ssh协议 ②幂等

    2024年02月10日
    浏览(35)
  • 自动化管理管理工具----Ansible

    目录 ​编辑 一、Ansible概念 1.1特点 二、工作机制(日常模块) 2.1 核心程序 三、Ansible 环境安装部署 四、ansible 命令行模块 4.1command 模块 4.2shell 模块 4.3cron 模块 4.4user 模块 4.5group 模块 4.6copy模块 4.7file模块 4.8hostname模块 4.9ping 模块 4.11yum 模块 4.12service/systemd 模块 4.13script 模块

    2024年02月10日
    浏览(43)
  • 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 模块

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包