ansible批量部署模块(二)

回顾:
Ansible:
无需客户端程序
只要有SSH
模块化

ansible帮助工具
ansible-doc 模块名
ansible-doc 模块名 -s 列出该模块的所有选项
ansible-doc -l 列出所有模块

6.group组模块

- gid
         设置组id
= name
         需要管理的组名
- state
         执行状态,absent 删除
                  present 创建(默认)

例1:创建组名www,并设置gid为666
[[email protected] ~]# ansible oldboy -m group -a "name=www gid=666"

例2:修改ww组的gid为888
[[email protected] ~]# ansible oldboy -m group -a "name=www gid=888"

例3:删除www组
[[email protected] ~]# ansible oldboy -m group -a "name=www gid=888 state=absent"

7.user用户模块

= name
         用户名
- uid
         uid
- group
         gid或groupname
- state
         执行状态,absent 删除
                  present 创建(默认)
- shell
         登录shell,/bin/bash(默认),/sbin/nologin
- create_home
         创建用户时,是否创建家目录
- password
         用户密码,不能使用明文,需要使用openssl加密后的密码
例1:创建一个用户oldboy,指定uid 6000,gid 666,并设置密码为123
注意:password不能使用明文,需要加密,password的加密值需使用双引号
# -1使用MD5进行加密 -stdin 非交互式
[[email protected] ~]# echo "123" | openssl passwd -1 -stdin
$1$ByoqasKh$lGSK41WgqAYJ/Ha9K3Yd00
[[email protected] ~]# ansible oldboy -m user -a ‘name=oldboy uid=6000 group=666 password="$1$ByoqasKh$lGSK41WgqAYJ/Ha9K3Yd00"‘

例2:创建一个程序用户www,指定uid666 gid666 不让登录 不创建家目录
[[email protected] ~]# ansible oldboy -m user -a "name=www uid=666 group=www create_home=no shell=/sbin/nologin

8.file模块

= path
        目标文件路径
        copy模块的dest
        其他模块的name
- src
        源文件路径
- owner
        属主
- group
        属组
- mode
        权限
- state
        absent 删除
        directory 创建目录
        file 修改文件属性(默认)
        touch  创建文件
        link hard 链接
- recurse
        递归
        recurse=yes
例1:创建目录/data和/backup,属主666,属组666
[[email protected] ~]# ansible oldboy -m file -a "path=/data owner=666 group=666 recurse=yes state=directory"
[[email protected] ~]# ansible oldboy -m file -a "path=/backup owner=666 group=666 recurse=yes state=directory"

例2:创建文件/etc/rsync.passwd,权限600
[[email protected] ~]# ansible oldboy -m file -a "path=/etc/rsync.passwd mode=600 state=touch"

例3:对/etc/hosts做个软链接到/tmp/hosts
[[email protected] ~]#  ansible oldboy -m file -a "src=/etc/hosts path=/tmp/hosts state=link"

总结:file模块仅适合创建目录,修改所属和权限,创建链接;除开这些操作的其他文件管理都通过copy模块实现

9.mount挂载模块

= path
        挂载点
- src
        需要挂载的设备
- fstype
        挂在设备的文件系统
        iso9660 光驱
        ext4
        xfs
        nfs
        cifs samba的共享文件系统
        ntfs windows磁盘文件系统
- opts
        挂载属性
            noatime
            noexec
            nosuid
= state
        挂载动作
            present    # 开机挂载,仅将挂载配置写入/etc/fstab
            mounted    # 挂载设备,并将配置写入/etc/fstab
            unmounted  # 卸载设备,不会清除/etc/fstab写入的配置
            absent     # 卸载设备,会清理/etc/fstab写入的配置

例1:通过nfs实现网络文件共享

1)安装nfs
ansible nfs -m yum -a "name=nfs-utils state=installed"
2)启动服务
ansible nfs -m service -a "name=rpcbind state=started"
ansible nfs -m service -a "name=nfs state=started"
3)修改配置文件
方法一:在m01上创建配置文件,然后通过copy模块推送给nfs(建议使用)
mkdir -p /server/conf
echo ‘/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)‘ > /server/conf/exports
ansible nfs -m copy -a ‘src=/server/conf/exports dest=/etc/‘
方法二:在m01上直接使用copy模块,推送文件内容
ansible nfs -m copy -a ‘content="/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" dest=/etc/exports‘
4)创建目录用户,并修改所属
ansible nfs -m group -a "name=www gid=666"
ansible nfs -m user -a "name=www uid=666 group=666 create_home=no shell=/sbin/nologin"
ansible nfs -m file -a "path=/data state=directory owner=666 group=666 recurse=yes"
5)重载配置文件
ansible nfs -m shell -a "exportfs -arv" 或 ansible nfs -m service -a "name=nfs state=restarted"
ansible nfs -m shell -a "showmount -e"
6)在web上挂载nfs的共享目录
ansible web -m yum -a "name=httpd state=installed"
ansible web -m service -a "name=httpd state=started"
ansible web -m mount -a "src=172.16.1.41:/data path=/var/www/html state=mounted fstype=nfs"
ansible nfs -m copy -a "content=‘xiao ming is your father‘ dest=/data/index.html"

10.script

1).写个脚本,创建用户,并配置密码
[[email protected] scripts]# cat 1.sh
#!/bin/bash
useradd oldgirl
echo 123 | passwd --stdin oldgirl &> /dev/null && echo ‘create passwd success‘
2).运行脚本
ansible all -m script -a "/server/scripts/1.sh"

11.cron

- name
        描述,必须要写,如果不写,默认为None,会导致无法指定删除某条计划任务
- job
        任务,命令
- state
        执行状态,absent 删除
                 present 创建(默认)
- minute
        Minute when the job should run ( 0-59, *, */2, etc )
        [Default: *]
- hour
        Hour when the job should run ( 0-23, *, */2, etc )
        [Default: *]
- day
        Day of the month the job should run ( 1-31, *, */2, etc )
        (Aliases: dom)[Default: *]
- weekday
        Day of the week that the job should run ( 0-6 for Sunday-Saturday, *, etc
        )(Aliases: dow)[Default: *]
- month
        Month of the year the job should run ( 1-12, *, */2, etc )
        [Default: *]
例子:每天的凌晨1点执行rsync_backup.sh
[[email protected] ~]# ansible all -m cron -a "name=‘Rsync backup‘ hour=1 minute=0 job=‘/bin/sh /server/scripts/rsync_backup.sh &> /dev/null‘"

原文地址:https://www.cnblogs.com/xmtxh/p/12233678.html

时间: 2024-10-10 03:46:45

ansible批量部署模块(二)的相关文章

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运

Centos6.5利用RubyGems的fpm制作zabbix_agent的rpm包,并使用ansible批量部署

一. 搭建rpm包制作环境 安装gcc [[email protected] ~]# yum install gcc 安装make [[email protected] ~]# yum install make 安装ruby源(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装) [[email protected] ~]# yum install ruby rubygems ruby-devel 查看ruby源 [[email protected] ~]# 

Ansible 批量部署平台

Ansible 介绍以及基本命令 Ansible 简介:Ansible 和目前市面上一些其他的项目管理工具有很大的不同,它的设计初衷就是为了更方便.快捷的进行配置管理.它易于安装和实用,语法也非常简单易学.可以使用 Ansible 将平常复杂的配置工作变得简单.更加标准化和更容易控制.Ansible 只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端,因为它是基于 SSH 的.Linux 服务器离不开 SSH,所以 Ansible 不需要为配置工作添加额外的支持,可通过命令行

ansible批量部署服务

一.ansible 1.概念ansible是一个基于Python开发的自动化运维工具!其功能实现基于SSH远程连接服务!ansible可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等功能2.网址:http://docs.ansible.com/ 官网3.特点不需要单独安装客户端(no agents),基于系统自带的sshd服务,sshd就相当于ansible的客户端.不需要服务端(no servers).需要依靠大量的模块实现批量管理.4.优点:(1) ansible软件特点:·

ansible批量部署(一)

自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署->启动服务->测试->加入集群 1.Ansible基本概述ansible是一个配置管理系统configuration management system你只需要可以使用ssh访问你的服务器或设备就行 Ansible能做什么可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作. Ansibl

ansible批量部署tomcat

1.1 构建目录结构 此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~ mkdir -p /ansible/roles/{nginx,mysql,tomcat,db}/{defaults,files,handlers,meta,tasks,templates,vars} defaults 默认寻找路径 tasks 存放playbooks路径 files 存放文件和脚本包,copy模块文件搜索路径 templates 模版存放路径 handlers notif

ansible批量部署mysql

1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/roles/mysql/tasks/main.yml - name: copy mysql_tar_gz to client copy: src=mysql-5.6.35.tar.gz dest=/tmp/mysql-5.6.35.tar.gz - name: copy install_script

ansible批量部署nginx

1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz to client copy: src=nginx-1.8.0.tar.gz dest=/tmp/nginx-1.8.0.tar.gz - name: copy install_shell to client copy: src=install_nginx.sh dest=/tmp/install

ansible批量部署zabbix-agent

zabbix_agent.yml文件: --- - hosts: zabbix-agent vars: - zabbix_server: 192.168.1.100 tasks: - name: add zabbix repo - Centos7 yum_repository: name: zabbix description: zabbix repo baseurl: http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/ gpgcheck: n