尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

云计算运维学习day22——Ansible-Roles

云计算运维学习day22——Ansible-Roles 目录一.Roles介绍1.1简单介绍1.2roles结构框架1.3使用apache角色安装Apache并修改端口号1.3.1完成项目初始化1.3.2安装apache角色1.3.3完成tasks的编辑1.3.4完成handlers的编辑1.3.5完成defaults的编辑1.3.6调用角色执行剧本1.3.7测试1.4配置防火墙1.4.1下载ansible.poixy模块1.4.2编辑playbook剧本1.4.3执行playbook1.5使用系统角色配置时间同步1.5.1安装系统角色1.5.2编写playbook剧本1.5.3执行playbook1.5.4测试1.6修改selinux的状态1.6.1获取selinux.yml文件1.6.2编写playbook剧本1.6.3执行文件1.6.4测试1.7安装nginx1.7.1安装nginx角色1.7.2编写playbook剧本1.7.3执行剧本1.7.4测试二仓库上传gitee2.1查看密钥2.2添加密钥​编辑2.3新建一个仓库2.4查看创建git仓库的步骤一.Roles介绍1.1简单介绍1.说明Ansible Roles角色是官方推荐的代码组织和复用机制。简单来说它把一个完整的运维任务比如“部署一个LNMP环境”拆解成一套标准的“文件目录结构”让原本散落在大剧本Playbook中的任务、变量、文件、模板和处理器各归其位。1.2roles结构框架文件/目录作用ansible.cfg项目级的ansible配置文件defaults默认变量生效的优先级最低便于修改vars固定变量优先级高高于默认变量不利于修改tasks存放着Role要执行的playbook必存files存放静态文件handles存放触发器meta存放元数据依赖关系、说明、平台templates存放模板文件.j2tests测试该Role的示例PlaybookReadME.md说明文档可选说明除了files和templates两个存放文件的目录外其他目录下都要有一个main.yml文件才可执行对应的内容1.3使用apache角色安装Apache并修改端口号1.3.1完成项目初始化cd ansible #进入项目目录 ansible-config init --disable ansible.cfg vim ansible.cfg #添加角色路径说明默认是全局角色需要将他更改到本地路径下1.3.2安装apache角色ansible-galaxy role init apache #创建apache角色 ansible-galaxy role list #查看角色列表安装的apache角色的结构如下1.3.3完成tasks的编辑cd tasks #进入tasks目录 vim main.yml #编辑任务.yml文件说明该任务会安装httpd服务并将部署的远程客户机的域名放到Apache的默认发布目录中并修改对应的httpd服务的端口号。同时修改完端口号后重启httpd服务使文件内容生效1.3.4完成handlers的编辑cd handlers #进入到触发器目录下 vim main.yml #编辑触发器的.yml文件说明匹配条件与tasks中定义的匹配条件一致这个案例中匹配条件是name: restart httpd service1.3.5完成defaults的编辑cd vars #进入变量目录下 vim main.yml #定义playbook的全局变量说明这里我们定义defaults默认变量而不是vars固定变量是因为defaults的优先级较低方便我们在playbook中进行二次修改。如果采用vars固定变量需要明确不会修改变量1.3.6调用角色执行剧本cd ~/ansible #返回项目目录 vim main.yml #编辑playbook ansible-playbook main.yml1.3.7测试curl server2 #能够访问说明测试成功1.4配置防火墙1.4.1下载ansible.poixy模块cd ansible #进入项目目录当中 ansible-galaxy collection install ansible.posix #安装ansible.posix模块说明ansible.posix模块用于扩展 Ansible 在 Linux/Unix 系统上的管理能力这里我们需要用它去管理我们的防火墙后续需要管理selinux1.4.2编辑playbook剧本vim main.yml #编辑playbook说明相信大家也看到了我这里有三种taskspre_tasks,tasks,post_taskspre_tasks:在所有任务包含角色之前执行的任务(优先执行)taksks普通任务按照所放置的位置顺序执行post_tasks在其他任务执行完成后最后执行该任务最后执行1.4.3执行playbookansible-playbook main.yml1.5使用系统角色配置时间同步1.5.1安装系统角色yum install -y rhel-system-roles sudo chown devops.devops ansible.cfg #确保文件权限完成roles的角色路径配置vim ansible.cfg1.5.2编写playbook剧本vim timesync.yml #编写剧本说明hostname指定公共的NTP服务器地址poolNTP池DNS解析时会返回多个IP客户端会从中选择最优的避免单点故障iburst启用爆发式同步让服务器在几秒钟内完成时间同步1.5.3执行playbookansible-playbook timesync.yml #执行剧本1.5.4测试vim /etc/chrony.conf1.6修改selinux的状态1.说明将selinux的状态从disabled修改到enforcing同时开设82端口号通过selinux和firewall。2.注意这里只允许CentOS7从disabled一步到enforcingRocky Linux必须要先从disabled状态转到premissive状态再转到enforcing状态因为Rocky Linux的版本selinux功能升级了一步转到enforcing状态会破坏selinux的上下文结构导致虚拟机启动不了1.6.1获取selinux.yml文件cd /usr/share/doc/rhel-system-roles/selinux cp example-selinuxplaybook.yml /home/devops/ansible/selinux.yml #复制官方角色的.yml文件说明由于我们之前下载过系统角色这里我们直接在selinux的模板案例中进行修改1.6.2编写playbook剧本cd ansible #进入项目目录 vim selinux.yml #编写selinux.yml文件 vim selinux_1.yml #编写防火墙firewall放行82端口selinux.yml说明这里仅针对CentOS 7版本同时文件的下面不用做修改selinux_1.yml:1.6.3执行文件ansible-playbook selinux_1.yml注意不要在ansible剧本的执行端执行sleinux.yml这会导致你的虚拟机重启剧本会中断1.6.4测试#等待剧本执行完成后进入被控虚拟机 getenforce #查看当前的selinux状态 semange port -l | grep http #查看82端口是否允许访问 curl node1:82 #使用82端口访问修改前修改后1.7安装nginx1.7.1安装nginx角色ansible-galaxy role install geerlingguy.nginx1.7.2编写playbook剧本vim nginx.yml1.7.3执行剧本ansible-playbook nginx.yml1.7.4测试curl node1二仓库上传gitee2.1查看密钥cd .ssh cat id_rsa.pub #查看密钥2.2添加密钥进入gitee输入标题并粘贴密钥2.3新建一个仓库2.4查看创建git仓库的步骤1.创建你的名字和你的邮箱git config --global user.name www git config --global user.email 你的邮箱2.进入你的项目目录下3.完成git初始化git init4.创建说明文档并加入git中touch ReadME.md #使用vim命令输入编写文件 git add ReadME.md #加入仓库5.测试能否连通git commit -m first commit6.创建远程仓库说明为当前 Git 仓库添加一个名为origin的远程仓库地址指向 Gitee上的一个项目。git remote add origin gitgitee.com:gitee的用户名/项目名.git7.将本地仓库上传到gitee上sudo git push -u origin master
返回列表