ansible(二)

模块七:

hostname模块,修改主机名

ansible(二)_第1张图片模块八:

copy模块:用于复制指定主机的文件到远程主机的模块(必须要用绝对路径)

常用的参数:

Dest:指出要复制的文件在哪(去哪),必须使用绝对路径,如果原目标是目录,那么指目标也得是目录,如果目标存在,会覆盖原有的内容

Src:复制文件的源,最好使用绝对路径,原目标是目录,那么指目标也得目录

Owner:指定文件的所有者

Group:指出文件的所在组

Connect:从主机复制指定的内容到目标主机,用了content就不能使用src

Mode:指定复制之后的权限

ansible(二)_第2张图片

练习:

ansible(二)_第3张图片

ansible(二)_第4张图片

ansible(二)_第5张图片

在复制目录时,还是要复制完整的目录,即目录当中不能为空

ansible(二)_第6张图片

ansible(二)_第7张图片

赋权给的还是文件

ansible(二)_第8张图片

例二:

ansible(二)_第9张图片

Mv功能:

ansible(二)_第10张图片

模块九:

文件模块跟目录无关

Owner

Group

Mode

State=link 创建链接文件

State=touch 创建文件

State=absent 删除文件

创建文件

ansible(二)_第11张图片

File模块也可以生成目录

ansible(二)_第12张图片

ansible(二)_第13张图片

创建文件

ansible(二)_第14张图片

修改文件的所有者和所在组

ansible(二)_第15张图片

如何设置链接文件:

ansible(二)_第16张图片

写一个需求:

如何远程的删除文件:

ansible(二)_第17张图片

模块十:

yum模块

远程主机上安装和卸载软件:

在目标主机上的操作都是后台运行,不影响其他用户的使用

ansible(二)_第18张图片

如何卸载

ansible(二)_第19张图片

写一个需求:

ansible(二)_第20张图片

ansible(二)_第21张图片

模块十一:

server/systemd模块

Name,设定管理服务的名称

State=startd|stopped|restarted 操作管理

Enable=true 表示开机自启,如果不加,默认就是开机不自动启动

Rulevel:配合enable的,开机自启,可以设置运行级别,在命令行可以设置,但是不生效,必须要playbook当中使用,

演示:

ansible(二)_第22张图片

演示一个需求:

ansible(二)_第23张图片

ansible(二)_第24张图片

ansible(二)_第25张图片

模块十二:

script模块

运行本地脚本,然后把结果输出到目标主机

ansible(二)_第26张图片

ansible(二)_第27张图片

ansible(二)_第28张图片

需求:

ansible(二)_第29张图片

ansible(二)_第30张图片

ansible(二)_第31张图片

模块十三:

setup模块

Setup主要查看目标主机的环境系统系统

不加条件会打印所有

ansible(二)_第32张图片

精确获取

查看IP地址

ansible(二)_第33张图片

查看程CPU

ansible(二)_第34张图片

查看内存

ansible(二)_第35张图片

查看内核

ansible(二)_第36张图片

查看系统,用的什么系统

ansible(二)_第37张图片

查看内存

ansible(二)_第38张图片

常用:

ansible all -m setup -a 'filter=*ipv4'

ansible all -m setup -a 'filter=*processor*'

ansible all -m setup -a 'filter=*mem*'

ansible all -m setup -a 'filter=*os*' #windows

ansible all -m setup -a 'filter=’*system*'

ansible all -m setup -a 'filter=’proc'

--------- inventory 主机清单 ---------

Ansible可以管理上千台主机

怎么快速声明多个主机

ansible(二)_第39张图片

Ping一下

ansible(二)_第40张图片

ansible(二)_第41张图片

还是要设置密钥队,难道没有ssh就无法登录的吗,当然不是

如何无ssh密钥队登录

主机清单管理组当中的变量名:

Ansible_host 连接时的IP地址

在ansible当中也可以声明变量

//inventory 中的常用变量

Inventory变量名               含义

ansible_host                  ansible连接节点时的IP地址

ansible_port                  连接对方的端口号,ssh连接时默认为22

ansible_user                  连接对方主机时使用的用户名。不指定时, 将使用执行ansible或ansible-playbook命令的用户   

ansible_password              连接时的用户的ssh密码,仅在未使用密钥对验证的情况下有效

ansible_ssh_private_key_file  指定密钥认证ssh连接时的私钥文件

ansible_ssh_common_args       提供给ssh、sftp、scp命令的额外参数

ansible_become                允许进行权限提升

ansible_become_method         指定提升权限的方式,例如可使用sudo/su/runas等方式

ansible_become_user           提升为哪个用户的权限,默认提升为root

ansible_become_password       提升为指定用户权限时的密码(免密钥登录才可以实现)

例如:一开始的用户为张三,使用ansible_become_password可以把用户改为root

如何集群试的给主机进行免密钥登录

ansible(二)_第42张图片

取消注释

ansible(二)_第43张图片

ansible(二)_第44张图片

直接ping测试:

ansible(二)_第45张图片

多台主机呢,一台一台ping台繁琐

多ping前提:主机密码相同,用户名相同,端口相同

对组的范围之内声明

ansible(二)_第46张图片

ansible(二)_第47张图片

声明所有:

ansible(二)_第48张图片

Ping测试:

ansible(二)_第49张图片

红色主机尚未打开

ansible(二)_第50张图片

如何来实现组之间的嵌套:在声明好组之后,把不同的组放入里面

vim /etc/hosts

ansible(二)_第51张图片

这个名字是不能随便起的,就叫children

ansible(二)_第52张图片

你可能感兴趣的:(ansible)