ansible的安装

将下载的包全部安装

ansible --version查看版本

在主节点创建用户devops

切换到devops用户在家目录下创建ansible目录

创建ansible.cfg文件,内容如下,意思是访问inventory文件就访问当前目录下的inventory

创建inventory文件

在主节点ssh-keygen免密操作

两个子节点创建用户devops

(以server5和server6作为子节点)

添加密码

在主节点(server3)ssh-copy-id 子节点

主节点

ansible all -m ping 连接两个子节点

 

ansible all -m ping -u root 尝试以root用户连接两个子节点

root用户不可用

ansible all -m ping -u devops -b 以devops用户身份连接以root,切换root测试

依旧是权限的问题

ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd" 对test这个子节点将其/etc/passwd copy到/tmp下

ansible test -a “ls/tmp”  查看test节点的/tmp

ansible test -a “rm/tmp/passwd”     删除test节点的/tmp/passwd警告但是删除成功

ansible test -m copy -a “src=/etc/passwd dest=/mnt/passwd” 对/mnt没有权限,tmp是对普通用户也有操作权限

添加权限,在两个子节点用户

vim/etc/sudoers

将devops这个普通用户的权限设置的与超户一致,并添加免密登陆

以超户身份修改在修改完毕退出的时候要添加!

ansible test -m copy -a "src=/etc/passwd dest=/mnt/passwd" -b 就可以了

cat /etc/ansible/ansible.cfg

复制 下面几行

添加到自己写的ansible.cfg将注释去掉

这样也是对权限的一种提升

子节点的匹配

ansible 'test:!prod' -m ping 匹配在test中不在prod中的

ansible 'test:&prod' -m ping

ansible '&test:prod' -m ping 匹配在test中也在prod中的

将test的prod两个子节点添加到同一个组中,组的名字随意,添加到一起的写法如下

 

很形象的写法

ansible test -m yum -a "name=httpd state=present" 对test匹配项安装httpd

在test对应的主机下面查看

ansible test -m shell -a “rpm -q httpd”查看httpd的安装信息

ansible tesrt -m yum -a "name=httpd state=absent“卸载httpd

ansible tesrt -m yum -a "name=httpd state=latest“ 安装最新版本

其实安装http调用的是ansible里的yum模块,所以下面来看一下模块

ansible-doc -l 查看所有的模块

ansible tesrt -m yum -a "name=mariadb-server state=present“ 安装mariadb

ansible tesrt -m yum -a "name=MySQL-python state=present“ 安装mysql的远程连接

ansible test -m service -a "name=mariadb state=started" 启动mariadb

ansible test -m mysql_user -a "name=wlt password=westos priv=*.*:select host='%' state=present“ 为mysql创建用户给与查看权限

在其他主机登陆测试

playbook

在主节点上写playbook文件

因为server6上面没有创建过东西所以指定server6

ansible-playbook playbook.yml  --syntax-check  检验错误

这就是写错了

这样就是没问题了

ansible-playbook playbook.yml  --list-task  查看需要执行的动作

ansible-playbook playbook.yml  --list-hosts  动作节点ip

ansible-playbook playbook.yml  执行

再次执行只是省掉了安装过程以及启动,结果一样,会看到没有出现changes,没有出现变更

由于yml文件的特殊性将Tab键的缩进指定为两个空格

vim .vimrc

autocmd FileType yaml setlocal ai ts=2 sw=2 et

再tab键补齐的时候就会缩进两个空格

将playbook.yml修改,可以进行对配置的修改以及修改完成之后的重启

写任务和触发器

创建files文件夹 将http.conf文件放到这个文件夹下

 

 

修改files下的httpd.conf的监听端口

执行

查看

在server6http的监听端口就是8080

配置火墙

首先就是启动

再就是添加http到策略里

在server6中可以自己添加index.html

或者在主节点的playbook.yml中配置

在安装 httpd下面添加

在files下创建index.html

 

本机连接测试

首先将主节点也与副节点一致,做ssh-copy-id免密

将devops用户也写进/etc/sudoers

在playbook.yml文件末尾添加

因为是顺序执行,所以写在最后

测试

因为只是测试成功与否所以显示没错即可

模版的使用

在ansible文件夹下创建模版的文件夹mkdir templates

将files文件夹下的httpd.conf复制过来

将文件重命名为httpd.conf.j2

将playbook.yml文件修改

因为性质一样所以就没什么需要修改的

传参

将httpd监控的端口作为参数传到文件中

将模版修改

修改playbook.yml

测试

没出错

获取副节点主机信息

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值