首页 > 其他分享 >Ansible

Ansible

时间:2024-03-13 19:33:12浏览次数:20  
标签:web mnt ansible Ansible 模块 root localhost

1.Ansible发展

作者:Michael DeHaan( Cobbler pxe kikstar 与 Func 作者)ansible 的名称来自科幻小说《安德的游戏》中跨越时空的即时通信工具,使用它可以在相距数光年的距离,远程实时控制前线的舰队战斗2012-03-09,发布0.0.1版,2015-10-17,Red Hat宣布1.5亿美元收购。

官网:https://www.ansible.com/
官方文档:https://docs.ansible.com/

1.1Ansible功能

  • 批量执行远程命令,可以对远程的多台主机同时进行命令的执行

  • 批量安装和配置软件服务,可以对远程的多台主机进行自动化的方式配置和管理各种服务

  • 编排高级的企业级复杂的IT架构任务, Ansible的Playbook和role可以轻松实现大型的IT复杂架构

  • 提供自动化运维工具的开发API, 有很多运维工具,如jumpserver(堡垒机)就是基于 ansible 实现自动化管理功能

1.2Ansible特性

  • 模块化:调用特定的模块完成特定任务,支持自定义模块,可使用任何编程语言写模块(账号,软件等)

  • Paramiko(python对ssh的实现),PyYAML,Jinja2(模板语言)三个关键模块

  • 基于Python语言实现

  • 部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖PKI(无需ssl)

  • 安全,基于OpenSSH

  • 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况,此特性非绝对

  • 支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构 剧本演员要按照 系统按照你规定的方式去执行命令

  • 较强大的多层解决方案 role

1.3Ansible架构

  • INVENTORY:Ansible管理主机的清单 /etc/anaible/hosts 需要管理的服务清单

  • MODULES:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义

  • PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用

  • API:供第三方程序调用的应用程序编程接口

1.4Ansible命令执行来源

  • USER 普通用户,即SYSTEM ADMINISTRATOR

  • PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件

  • CMDB(配置管理数据库) API 调用

  • PUBLIC/PRIVATE CLOUD API调用

2.相关文件

  • /etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性,也可以在项目的目录中创建此文件,当前目录下如果也有ansible.cfg,则此文件优先生效,建议每个项目目录下,创建独有的ansible.cfg文 件

  • /etc/ansible/hosts 主机清单

  • /etc/ansible/roles/ 存放角色的目录

2.1ansible主配置文件

Ansible 的配置文件可以放在多个不同地方,优先级从高到低顺序如下

ANSIBLE_CONFIG #环境变量,注意此项用 ansible --version 看不到,但可以生效
./ansible.cfg   #当前目录下的ansible.cfg
~/.ansible.cfg #当前用户家目录下的.ansible.cfg
/etc/ansible/ansible.cfg  #系统默认配置文件

可以使用 来查看
[root@node1 yum.repos.d]#ansible --version

Ansible 的默认配置文件 /etc/ansible/ansible.cfg ,其中大部分的配置内容无需进行修改

[defaults]
#inventory     = /etc/ansible/hosts     #主机列表配置文件
#library = /usr/share/my_modules/         #库文件存放目录
#remote_tmp = $HOME/.ansible/tmp         #临时py命令文件存放在远程主机目录
#local_tmp     = $HOME/.ansible/tmp     #本机的临时命令执行目录
#forks         = 5                       #默认并发数
#sudo_user     = root                     #默认sudo 用户
#ask_sudo_pass = True                     #每次执行ansible命令是否询问ssh密码
#ask_pass     = True   
#remote_port   = 22
#host_key_checking = False                 #检查对应服务器的host_key,建议取消此行注释,实现第一次连接自动信任目标主机
#log_path=/var/log/ansible.log             #日志文件,建议启用
#module_name = command           、mod        #默认模块,可以修改为shell模块
[privilege_escalation]                     #普通用户提权配置
#become=True
#become_method=sudo
#become_user=root
#become_ask_pass=False

2.2主机清单文件

ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory 主机清单文件中将其分组组织

官方文档:

https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html  

默认的inventory file 位置在:

/etc/ansible/hosts

参数详细说明

ansible_ssh_host 
#将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置.
ansible_ssh_port 
#ssh端口号.如果不是默认的端口号,通过此变量设置.这种可以使用 ip:端口
192.168.1.100:2222

ansible_ssh_user 
#默认的 ssh 用户名

ansible_ssh_pass 
#ssh 密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥)

ansible_sudo_pass 
#sudo 密码(这种方式并不安全,我们强烈建议使用 --ask-sudo-pass)

ansible_sudo_exe (new in version 1.8)
#sudo 命令路径(适用于1.8及以上版本)

ansible_connection 
#与主机的连接类型.比如:local, ssh 或者 paramiko. Ansible 1.2 以前默认使用 paramiko.1.2 以后默认使用 'smart','smart' 方式会根据是否支持 ControlPersist, 来判断'ssh' 方式是否可行.

ansible_ssh_private_key_file
#ssh 使用的私钥文件.适用于有多个密钥,而你不想使用 SSH 代理的情况.

ansible_shell_type 
#目标系统的shell类型.默认情况下,命令的执行使用 'sh' 语法,可设置为'csh' 或 'fish'.

ansible_python_interpreter 
#目标主机的 python 路径.适用于的情况: 系统中有多个 Python, 或者命令路径不是"/usr/bin/python",比如 \*BSD, 或者 /usr/bin/python 不是 2.X 版本的Python.之所以不使用 "/usr/bin/env" 机制,因为这要求远程用户的路径设置正确,且要求 "python" 可执行程序名不可为 python以外的名字(实际有可能名为python26).与ansible_python_interpreter 的工作方式相同,可设定如 ruby 或 perl 的路径....

2.3Ansible相关工具

  • /usr/bin/ansible 主程序,临时命令执行工具

  • /usr/bin/ansible-doc 查看配置文档,模块功能查看工具,相当于man ansible-doc -l |grep 关键字 具体模块名字

  • /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具,相当于脚本

  • /usr/bin/ansible-pull 远程执行命令的工具

  • /usr/bin/ansible-vault 文件加密工具

  • /usr/bin/ansible-console 基于Console界面与用户交互的执行工具

  • /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台

一、主机清单文件

1.yum安装Ansible

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# 
[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum install ansible -y

用的时候会自己启动

2.修改 主机清单文件

[root@localhost ~]# vim /etc/ansible/hosts
 45 [web]
 46 192.168.91.103
 47 192.168.91.104
 48 
 49 [all]
 50 192.168.91.[102:110]

 3.登录测试

[root@localhost ~]# ansible -m ping 192.168.91.103

[root@localhost ~]# ansible -m ping 192.168.91.103 -k

[root@localhost ~]# ansible web  -m ping  -k

[root@localhost ~]# ansible web  -m ping  -k

4.开启免密登录

[root@node1 ~]#vim /etc/ssh/ssh_config 
#   StrictHostKeyChecking ask
#   修改35行 StrictHostKeyChecking  no


[root@node1 ~]#vim /etc/ansible/ansible.cfg 
71 #host_key_checking = False
开启71行的ansible的不验证即可

[root@localhost ~]# ssh-keygen

[root@localhost ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.103

[root@localhost ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.104

[root@localhost ~]# ssh 192.168.91.103

[root@localhost ~]# ssh 192.168.91.104

[root@localhost ~]# ansible web -m ping

Web是我们之前在主机清单文件中写的名字

[root@localhost ~]# ansible all -m ping

 5.ansible-doc

[root@localhost ~]# ansible-doc -l

###查看所有支持的模块

[root@localhost ~]# ansible-doc ping

二、模块

1.Command模块

[root@localhost ~]# ansible web -a 'hostname'

[root@localhost ~]# ansible web -a 'touch /opt/test' 

[root@localhost ~]# ansible web -a 'ls /opt/test'

或者直接去7-3和7-4opt目录看一下,有没有test这个文件

2.Shell模块

功能:和command相似,用shell执行命令,支持各种符号,比如:*,$, >

注意:此模块不具有幂等

[root@localhost ~]# ansible web -m shell -a "echo hello > /opt/hello.txt"

[root@localhost ~]# ansible web -m shell -a "cat /opt/hello.txt"

3.Script模块

功能:在远程主机上运行ansible服务器上的脚本(无需执行权限)

注意:此模块不具有幂等性

[root@localhost ~]# cat tset.sh
#!/bin/bash
hostname

[root@localhost ~]# ansible web -m script -a '/root/tset.sh'

4.Copy模块

功能:从ansible服务器主控端复制文件到远程主机

注意: src=file 如果是没指明路径,则为当前目录或当前目录下的files目录下的file文

关键词

src          代表源文件路径
dest        代表文件落地路径
owner     属主
group      属组
mode      代表权限
backup    如果复制时有同名文件会先备份再复制   (文件内容要发生改变才行)

[root@localhost ~]# ansible web -m copy -a "src=/etc/passwd dest=/mnt/owner=zhangsan mode=700" 

[root@localhost ~]# ansible web -m copy -a "src=/root/tset.sh dest=/mnt/test2.sh owner=zhangsan mode=600 backup=yes"

ansible web -m copy -a "src=/etc dest=/backup"
ansible web -m copy -a "src=/etc/ dest=/backup"
#############################################
etc  	不加  	/   	连etc  一起复制
etc   	加  		/	   	只复制etc下的文件

1.backup

  如果复制时有同名文件会先备份再复制   (文件内容要发生改变才行)

[root@localhost data]# ansible web -m copy -a "src=/data/hello.sh  dest=/opt/hello.sh owner=lisi group=lisi mode=777 backup=yes"

我们的hello.sh文件中的内容没有发生改变;所以复制到 7-2和7-3下,并没有备份

[root@localhost data]# vim hello.sh
[root@localhost data]# ansible web -m copy -a "src=/data/hello.sh  dest=/opt/hello.sh owner=lisi group=lisi mode=777 backup=yes"

当我们修改了hello.sh文件中的内容后,复制时,会在7-2和7-3下备份

2.加 / 和不加 /

不加 /                        etc会变成子目录连etc一起复制,

加 /                            只复制etc下的文件 把etc文件夹改名成 backup

3.content

指定内容,直接生成目标文件

[root@localhost data]# ansible web -m copy -a "content='test line1\ntset line2\n' dest=/tmp/test.txt"

5.Get_url模块

###下载

功能: 用于将文件从http、https或ftp下载到被管理机节点上

[root@localhost data]# ansible web -m get_url -a "url=https://nginx.org/download/nginx-1.18.0.tar.gz dest=/opt"

可以指定名称

[root@localhost data]# ansible web -m get_url -a "url=https://nginx.org/download/nginx-1.18.0.tar.gz dest=/opt/nginx"

6.Fetch模块

只能传文件;不支持文件夹;打包成压缩包就行

把客户端文件拷贝到主机端

[root@localhost mnt]# ansible web -m fetch -a "src=/etc/passwd  dest=/mnt"

7.File模块

功能:设置文件属性,创建软链接等

path       指定文件路径
state      文件状态 有:新建(touch) 删除(absent) 文件夹(directory)  连接文件(link)等
src        源文件
mode       权限
owner      属主
group      属组
recurse    递归

[root@localhost mnt]# ansible web -m file -a "path=/data/666 state=touch mode=644 owner=lisi group=lisi"

8.stat

功能:检查文件或文件系统的状态

注意:对于Windows目标,请改用win_stat模

 选项:

path:文件/对象的完整路径(必须)

常用的返回值判断:

exists: 判断是否存在
isuid: 调用用户的ID与所有者ID是否匹配 

1.directory 

[root@localhost mnt]# ansible web -m file -a "path=/mnt/aa state=directory"

 2.recurse

[root@localhost mnt]# ansible web -m file -a "path=/mnt/aa/bb state=directory owner=root group=root recurse=yes"

3.absent

[root@localhost mnt]# ansible web -m file -a "path=/mnt/aa/bb state=absent"

9.unarchive模块

功能:解包解压缩

实现有两种用法:

1、将ansible主机上的压缩包传到远程主机后解压缩至特定目录,设置copy=yes,此为默认值,可省略

2、将远程主机上的某个压缩包解压缩到指定路径下,设置copy=no

常见参数:

copy:默认为yes,当copy=yes,拷贝的文件是从ansible主机复制到远程主机上,如果设置为copy=no,会在远程主机上寻找src源文件
remote_src:和copy功能一样且互斥,yes表示在远程主机,不在ansible主机,no表示文件在ansible主机上
src:源路径,可以是ansible主机上的路径,也可以是远程主机(被管理端或者第三方主机)上的路径,如果是远程主机上的路径,则需要设置copy=no
dest:远程主机上的目标路径
mode:设置解压缩后的文件权限

1.copy=yes 

加不加这个copy=yes;效果一样

[root@localhost mnt]# ansible web -m unarchive -a "src=/mnt/all.tar.gz dest=/mnt"

2.copy=no

[root@localhost mnt]# ansible web -m unarchive -a "src=/data/nginx-1.18.0.tar.gz dest=/data copy=no"

10.Archive模块

###对远端主机进行压缩

[root@localhost mnt]# ansible web -m archive -a 'path=/var/log/ dest=/data/log.tar.bz2 owner=zhangsan mode=600'

对比7-1和7-2的/var/log内容;发现,压缩的是7-2远端服务器的内容 

11.Hostname模块

###修改被管理主机的主机名

ansible 192.168.91.102 -m hostname -a 'name=node3 '
#一般不使用此模块,主机名会一致

12.Cron模块

功能:计划任务

支持时间:minute,hour,day,month,weekday

关键字:

name  会生成一行注释,显示标题如下显示
job   执行的命令

1.添加

[root@localhost mnt]# ansible 192.168.91.102 -m cron -a 'hour=*/2 minute=30 weekday=1-5 name="backup mysql" job=/root/mysql_backup.sh'

看结果

2.删除

[root@localhost mnt]# ansible 192.168.91.102 -m cron -a 'name="backup mysql" state=absent'

结果

3.disabled=yes

###不启用

[root@localhost mnt]# ansible 192.168.91.102 -m cron -a 'hour=*/ minute=30 weekday=1-5 name="backup mysql" job=/root/mysql_backup.sh disabled=yes'

结果

4.disabled=no

###开启

[root@localhost mnt]# ansible 192.168.91.102 -m cron -a 'hour=*2/ minute=30 weekday=1-5 name="backup mysql" job=/root/mysql_backup.sh disabled=no'

结果

13.Yum_repository模块

功能:建立yum仓库模块

关键字:

name参数:            必须参数,用于指定要操作的唯一的仓库ID,也就是”.repo”配置文件中每个仓库对应的”中括号”内的仓库ID。
baseurl参数:        此参数用于设置 yum 仓库的 baseurl。
description参数:    此参数用于设置仓库的注释信息,也就是”.repo”配置文件中每个仓库对应的”name字段”对应的内容。
file参数:            此参数用于设置仓库的配置文件名称,即设置”.repo”配置文件的文件名前缀,在不使用此参数的情况下,默认以 name 参数的仓库ID作                      为”.repo”配置文件的文件名前缀,同一个”.repo” 配置文件中 可以存在多个 yum 源。
enabled参数:        此参数用于设置是否激活对应的 yum 源,此参数默认值为 yes,表示启用对应的 yum 源,设置为 no 表示不启用对应的 yum 源。
gpgcheck参数:        此参数用于设置是否开启 rpm 包验证功能,默认值为 no,表示不启用包验证,设置为 yes 表示开启包验证功能。
gpgcakey参数:        当 gpgcheck 参数设置为 yes 时,需要使用此参数指定验证包所需的公钥。
state参数:        默认值为 present,当值设置为 absent 时,表示删除对应的 yum 源。

###yum安装

1.安装httpd 

[root@localhost mnt]# ansible web -m yum -a 'name=httpd state=present'

结果

2.删除 

删除

[root@localhost mnt]# ansible web -m yum -a 'name=httpd state=present state=absent'

结果

3.安装nginx

ansible web -m yum_repository -a 'name=epel description=epel  baseurl=https://download.fedoraproject.org/pub/epel/$releasever/$basearch/ gpgcheck=no file=epel'

[root@localhost mnt]# ansible web -m yum -a 'name=nginx state=present'

看结果

 

14.Service模块

功能:管理服务

关键字:

name参数:        此参数用于指定需要操作的服务名称,比如 nginx。
state参数:    此参数用于指定服务的状态,比如,我们想要启动远程主机中的 nginx,则可以将 state 的值设置为 started;如果想要停止远程主机中的服               务,则可以将 state 的值设置为 stopped。此参数的可用值有 started、stopped、restarted、reloaded。
enabled参数:    此参数用于指定是否将服务设置为开机 启动项,设置为 yes 表示将对应服务设置为开机启动,设置为 no 表示不会开机启动。

1.开启nginx

[root@localhost mnt]# ansible web -m service -a 'name=nginx state=started enabled=yes'

curl 192.168.91.102
###看结果###

15.mount挂载和卸载

功能: 挂载和卸载文件系统

1.先找UUID 

[root@localhost mnt]# ansible web -a 'blkid'

2.挂载 

[root@localhost mnt]# ansible web -m mount -a 'src=UUID="678f925e-42c3-433d-b1b3-22f5c14996a1" path=/home fstype=xfs opts=noatime state=present'

3.卸载

[root@localhost mnt]# ansible web -m mount -a 'path=/home fstype=xfs opts=noatime state=unmounted'

16.User模块

###管理用户

comment         用户的描述信息
createhome      是否创建家目录
force           在使用state=absent时, 行为与userdel –force一致.
group           指定基本组
groups          指定附加组,如果指定为(groups=)表示删除所有组
home            指定用户家目录
move_home       如果设置为home=时, 试图将用户主目录移动到指定的目录
name            指定用户名
non_unique      该选项允许改变非唯一的用户ID值
password        指定用户密码,使用 SHA512 hash
remove          在使用state=absent时, 行为是与userdel –remove一致
shell           指定默认shell
state           设置帐号状态,不指定为创建,指定值为absent表示删除
system          当创建一个用户,设置这个用户是系统用户。这个设置不能更改现有用户
uid             指定用户的uid
update_ password 
  always      如果password参数设置的值与用户当前的加密过的密码字符串不一致,则直接更新用户的密码,默认值即为always
  on_create   如果password参数设置的值与用户当前的加密过的密码字符串不一致,则不会更新用户的密码字符串,保持之前的密码设定

[root@localhost mnt]# ansible all -m user -a 'name=user1 comment="test user" uid=2048 home=/app/user1 group=root'

看结果

17.Group模块

###管理组

1.创建组 

[root@localhost mnt]# ansible web -m group -a 'name=nginx gid=88'

2.删除组

[root@localhost mnt]# ansible web -m group -a 'name=ng state=absent'

18.reboot模块

[root@ansible ~]#ansible websrvs -m reboot

19.Lineinfile模块

ansible在使用sed进行替换时,经常会遇到需要转义的问题,而且ansible在遇到特殊符号进行替换时,存在问题,无法正常进行替换 。其实在ansible自身提供了两个模块:lineinfile模块和replace模块,可以方便的进行替换一般在ansible当中去修改某个文件的单行进行替换的时候需要使用lineinfile模块

regexp参数 :使用正则表达式匹配对应的行,当替换文本时,如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换,当删除文本时,如果有多行文本都能被匹配,这么这些行都会被删除。

如果想进行多行匹配进行替换需要使用replace模块

功能:相当于sed,可以修改文件内容

关键字:

path            指定要操作的文件
regexp            使用正则表达式匹配对应的行
line            修改为新的内容
insertafter        将文本插入到“指定的行”之后
insertbefore    将文本插入到“指定的行”之前
state            删除对应的文本时,需要state=absent
backrefs        1.支持后向引用、2.当未匹配到内容则不操作文件
backup            是否在修改文件之前对文件进行备份
create            当要操作的文件并不存在时,是否创建对应的文件

[root@localhost mnt]# ansible web -m lineinfile -a 'dest=/etc/fstab state=absent regexp="^#"'

结果

20.replace模块

该模块有点类似于sed命令,主要也是基于正则进行匹配和替换,建议使用

ansible all -m replace -a "path=/etc/fstab regexp='^(UUID.*)' replace='#\1'"

21.setup模块

功能: setup 模块来收集主机的系统信息,这些 facts 信息可以直接以变量的形式使用,但是如果主机较多,会影响执行速度

可以使用 gather_facts: no 来禁止 Ansible 收集 facts 信

[root@localhost mnt]# ansible web -m setup -a "filter=ansible_nodename"

ansible all -m setup
ansible all -m setup -a "filter=ansible_nodename"
ansible all -m setup -a "filter=ansible_hostname"
ansible all -m setup -a "filter=ansible_domain"
ansible all -m setup -a "filter=ansible_memtotal_mb"
ansible all -m setup -a "filter=ansible_memory_mb"
ansible all -m setup -a "filter=ansible_memfree_mb"
ansible all -m setup -a "filter=ansible_os_family"
ansible all -m setup -a "filter=ansible_distribution_major_version"
ansible all -m setup -a "filter=ansible_distribution_version"
ansible all -m setup -a "filter=ansible_processor_vcpus"
ansible all -m setup -a "filter=ansible_all_ipv4_addresses"
ansible all -m setup -a "filter=ansible_architecture"
ansible all -m setup -a "filter=ansible_uptime_seconds"
ansible all -m setup -a "filter=ansible_processor*"
ansible all -m setup -a 'filter=ansible_env'

标签:web,mnt,ansible,Ansible,模块,root,localhost
From: https://blog.csdn.net/YUEAwb/article/details/136620710

相关文章

  • 运维自动化-Ansible
    关于运维自动化相关工具:代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion构建工具:maven、Ant、Gradle自动部署:Capistrano、CodeDeploy持续集成(CI):Jenkins、Travis配置管理:Ansible、SaltStack、Chef、Puppet容器:Docker、Podman、LXC、第三方厂商如AWS编排:Kube......
  • 【ansible】ansible的介绍和安装
    前言运维自动化云计算核心职能搭建平台架构日常运营保障性能效率优化相关工具代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion构建工具:maven、Ant、Gradle自动部署:Capistrano、CodeDeploy持续集成(CI):Jenkins、Travis配置管理:Ansible、SaltStack、Chef、P......
  • Ansible报错:Failed to parse /etc/ansible/hosts with yaml plugin
    早上接到同事反馈说Grafana某个监控图表点击后反应很慢,其他的图表都正常,只有这一张图表很慢。经过和大数据部门同事的沟通,发现应该是从大数据系统推送出来的数据有点问题,需要联合Grafana机器进行调试,询问我Grafana部署在哪台机器上。由于公司不同区域都有一套Prometheus+Grafana......
  • 在Linux中,ansible可以解决哪些问题?
    Ansible是一款强大的IT自动化工具,主要用于解决运维过程中面临的诸多挑战,特别适合批量管理和配置大量服务器。以下是Ansible可以帮助解决的一些典型问题:配置管理和标准化:Ansible能够通过Playbook(剧本)的形式编写和组织配置任务,确保在多个服务器上实现一致的系统配置,包括但不限......
  • ansible-playbook剧本 进阶
    剧本的高级特性剧本高级特性是完全遵循python的循环结构来的编程语言特有的逻辑控制语句变量循环等等你的剧本,可以考虑用高级特性,也可以不用高级特性是为了简化剧本比如,创建10个系统的用户ansiblebakcup-muser-a"name=cc01"ansiblebakcup-muser-a"name=cc......
  • ansible-playbook剧本 yaml json jq 学习
    ansible临时命令ad-hocansible中有两种模式,分别是ad-hoc模式和playbook模式ad-hoc简而言之,就是"临时命令"https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html临时命令非常适合您很少重复的任务。例如,如果您想在圣诞节假期关闭实验室中的所有机器。Ansib......
  • Ansible 常用模块
    3.4)Ansible常用模块Ansible默认提供了很多模块来供我们使用。我们可以通过ansible-doc-l命令查看到当前ansible都支持哪些模块通过ansible-doc-s模块名可以查看该模块有哪些参数可以使用。目前2023为止:模块总量基本保存在3387个。虽然模块众多,但最常用的......
  • Ansible——模块
    Ansible介绍Ansible是一个同时管理多个远程主机的软件(任何可以通过SSH协议登录的机器),因此Ansible可以管理远程虚拟机、物理机,也可以是本地主机(linux、windows)。Ansible通过SSH协议实现管理节点、远程节点的通信。只要是能够SSH登录的主机完成的操作,都可以通Ansible自动化操作,比......
  • python的ansible库--ansible_runner
    介绍AnsibleRunner是ansible官方提供的一个工具和python库,当直接与Ansible进行交互或作为另一个系统的一部分与Ansible进行交互时,无论是通过容器映像接口,作为独立工具还是作为可以导入的Python模块,它都可以提供帮助。目的是为Ansible提供稳定且一致的接口抽象。参考网站[官方......
  • Linux架构24 ansible之get_url模块, 服务管理模块, 用户管理模块, 定时任务模块, 挂载
    3.get_url模块-name:Downloadfoo.confget_url:url:http://example.com/path/file.confdest:/etc/foo.confmode:'0440'checksum:md5:b5bb9...#公司内部库,验证文件是否为要求的文件checksum:sha256:b5bb9...#另一种验证方式......