网站百度快照,wordpress是主流cms系统,我本沉默传奇新开网站,汉堡只做网站Ansible是一款自动化运维、批量管理服务器的工具#xff0c;批量系统配置、程序部署、运行命令等功能。基于Python开发#xff0c;基于ssh进行管理#xff0c;不需要在被管理端安装任何软件。Ansible在管理远程主机的时候#xff0c;只有是通过各种模块进行操作的。 需要关…Ansible是一款自动化运维、批量管理服务器的工具批量系统配置、程序部署、运行命令等功能。基于Python开发基于ssh进行管理不需要在被管理端安装任何软件。Ansible在管理远程主机的时候只有是通过各种模块进行操作的。 需要关闭防火墙和SELinux设置为disabled模式然后重启服务器 配置host让各个电脑能够通过域名访问 设置免密登录ssh-keygen能够让control主机通过Ansible管理其他主机 查看登录情况 安装Ansible 配置Ansible管理环境创建Ansible目录在该目录进行对其他主机的配置。 参考/etc/ansible/ansible.cfg模板编辑ansible.cfg(文件名必须是ansible.cfg) inventoryhosts主机清单需要管理的主机配置在当前目录的hosts文件中文件名自定义、 编辑主机清单文件[ ]中为组名,[ ]下面为组的成员。Node[3:4]简化表示从3到4。ctrln表示补全内容。可以嵌套组cluster表示大组webservers和database表示小组 命令格式ansible 主机集合 -m 模块名 -a 参数 。 查看主机ansible all --host 查看组的成员 让所有的主机执行一条命令如创建/tmp/abc目录必须在~/ansible自己定义的里面有ansible.cfg文件ansible下面执行 查看被管理的其他主机 ansible进行远程管理的两个方法1、adhoc临时命令就是在命令行上执行的管理命令如ansible all -a mkdir /tmp/abc。2、playbook剧本把管理任务用特定格式写到文件中。无论那种方式都是通过模块加参数进行管理。 adhoc临时命令ansible 主机或组列表 -m 模块工具 -a 参数 -a是可选的 ping模块检测所有远程主机能否ping通因为ping主机传递的回应时间不一样所以主机的顺序有时候不一样 ansible-doc -l 查看所有的模块大约有2834 command模块ansible默认模块用于在远程主机上执行任意命令如ansible all -a mkdir /tmp/abc command不支持shell特性如管道、重定向 使用 shell模块能够使用管道符等基础命令 script模块用于在远程主机上执行脚本。如在test组执行开启http服务的脚本 此时Node1主机还没有安装http服务 执行test组执行test.sh脚本 查看http服务 不建议使用command、shell和script模块因为当执行脚本和创建文件第一次能够执行成功但第二次有可能失败因为文件已经创建了没有幂等性。 file模块可以创建文件、目录、链接等还可以修改权限、属性等。 常用的选项path指定文件路径。owner设置文件所有者。group设置文件所属组。mode修改文件权限。state状态touch表示创建文件directory表示创建目录link表示创建软连接absent表示删除。srcsource的简写原地址。dest:destination的简写目标地址 使用file模块创建文件执行几次都不会报错绿色表示没有改动 ansible-doc file查看模块的功能。搜索EXAMPLE查看file模块的案例 在test主机上创建1.txt文件黄色表示改动成功 当在执行一次还是黄色当使用touch创建文件不存在会创建文件存在会修改文件的时间 ansible有期望模式当目标主机有要执行的文件就会显示绿色没有就会创建文件以满足期望为黄色。ansible test -m file -a path/tmp/1.txt ownersshd groupamd mode0777 此时查看修改成功。 删除文件absent。ansible test -m file -a path/tmp/1.txt stateabsent 创建软连接link。 ansible test -m file -a src/etc/hosts dest/tmp/hosts.txt statelink copy模块用于将文件从控制端拷贝上传到被控端。 常用选项src源地址控制端的文件路径。dest目标地址被控制端的文件路径。content内容需要写到文件中的内容。owner设置文件所有者。group设置文件所属组。mode修改文件权限。 将文件拷贝到test主机中。 ansible test -m copy -a srca.txt dest/root 可以上传目录但必须是非空目录才能上传否则传递不了 当被控主机的SELinux不是disabled需要安装Python3-libselinux软件包 让被控主机自己创建文件并指定内容为什么。 ansible test -m copy -a dest/tmp/test.txt contenthello world\n fetch模块下载。src源地址被控制端的文件路径。dest目标地址控制到的文件路径。下载的必须是文件不能下载目录。 将目标主机的文件下载到本地用户的家目录下面。 ansible webservers -m fetch -a src/etc/hostname dest~/ lineinfile模块用于确保目标文件中有某一行内容。 常用选项path待修改的文件路径。line写入文件的一行内容。regexp正则表达式用于查找文件中的内容。 test的主机的/etc/issue文件中一定要有一行“hello world的字符串如果没有默认添加到文件结尾 当再次输入该命令后文件中的helloworld也只有一行 让/etc/issue文件中有hello字符串的一行替换成“123456”如果没有找到“hello”的字符串行就会在文件的末尾添加“123456” 再次输入该命令就会在我就的末尾添加123456 replace模块lineinfile会替换一行replace可以替换关键字。 常用选项path待修改的文件路径。replace将正则表达式查到的内容替换成replace的内容。regexp正则表达式用于查找文件中的内容。 将/etc/issue文件中的123替换为abc 练习 在目标主机上创建/tmp/my目录属主和属组都是adm,权限为0777 ansible test -m file -a path/tmp/my statedirectory owneradm groupadm mode0777 将控制端的/etc/hosts文件上传到目标主机的/tmp/my目录中属主和属组都是adm,权限为0600 ansible test -m copy -a src/etc/hosts dest/tmp/my owneradm groupadm mode0600 替换目标主机/tmp/my/host文件中的Node4为server4 ansible test -m replace -a path/tmp/my/hosts regexpNode4 replaceserver4 将目标主机/tmp/my/hosts文件下载到控制端的当前目录 ansible test -m fetch -a src/tmp/my/hosts dest. user模块实现Linux用户管理。 常用选项name待创建的用户名。uid用户ID。group设置主组groups设置附加组。home设置家目录。password设置用户密码。state状态present表示创建它是默认选项absent表示删除。remove删除用户家目录、邮箱等值为yes或true都可以。 创建用户lisi 创建用户wangwuUID为1111属组为adm附加组为root家目录为/home/wangwu默认可以不写。 ansible test -m user -a namewangwu uid1111 groupadm groupsroot home/home/wangwu 添加lisi用户密码。此时设置的密码没有生效 需要设置加密密码将123456给sha512算法进行加密。 ansible test -m user -a namelisi password{{123456|password_hash(sha512)}} 此时设置的密码才会生效 删除lisi用户添加removeyes才能把用户的家目录给删除否则该用户的家目录还在。 此时用户的家目录还在 删除wangwu用户使用remove 此时用户的家目录就被删除了 group模块创建、删除组。 常用选项name待创建的组名。gid组的ID号。statepresent表示创建它是默认选项absent表示删除。 创建组。ansible test -m group -a namedevops 删除组。ansible test -m group -a namedevops stateabsent yum_repository模块用于配置yum。 常用选项file指定文件名。nameyum标签。descriptionyum的描述信息。baseurlyum的位置。enabled仓库是否启用填yes或no。gpgcheck是否检测红帽填yes或no。 对test主机添加yum。 ansible test -m yum_repository -a filemyrhel8 nameAppstream descriptionappstream baseurlftp://192.168.88.240/rhel/AppStream/ enabledyes gpgcheckno 添加BaseOS。 ansible test -m yum_repository -a filemyrhel8 nameBaseOS descriptionbaseos baseurlftp://192.168.88.240/rhel/BaseOS/ enabledyes gpgcheckno yum模块用于RPM软件包管理如安装、升级、卸载。 常用选项name包名。state状态present表示安装如已安装则忽略默认选项。latest表示安装或升级到最新版本absent表示卸载 安装wget软件包。 卸载 安装http。并且为最新版本。绿色表示已经安装并且为最新版本 service模块管理服务的开启、关闭 常用选项name控制的服务名。statestarted开启服务stopped表示关闭restarted表示重新开启。enabled是否开机自启动填yes或no。 开启httpd服务设置开机自启动 查看httpd服务的状态