ansible 软件相关模块,剧本

软件相关模块

yum

rpm和yum的区别

rpm:redhat package manager yum 可以解决依赖关系

yum 源配置

使用yum下载时需要先下载epel

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch #名字
baseurl=http://mirrors.aliyun.com/epel/7/$basearch  #rpm源的地址,可以写http,https,ftp,Samba,file:
failovermethod=priority
enabled=1 # 是否开启,1代表开启,0表示关闭
gpgcheck=0  #是否校验签名,1代表校验,0表示校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

yum 安装包组

yum grouplist # 查看包组信息
yum groupinstall # 安装包组
disablerepo #禁用源
enablerepo #启用源
name #包名
state  install (`present‘ or `installed‘, `latest‘), or remove (`absent‘ or `removed‘)

ep

ansible web -m yum -a ‘name=wget‘ # 安装wget
ansible web -m yum -a ‘name=python2-pip‘ # 安装python2-pip
ansible web -m yum -a ‘name=wget state=absent‘ # 卸载软件包
 ansible web -m yum -a ‘name="@Development Tools"‘ # 安装包组

检查模块是否安装成功

rpm -qa|grep 模块名

pip

pip install 安装包
pip freeze > a.txt 将python的环境打包到文件中
pip install -r a.txt 安装文件中的包
pip list 查看所有的以安装成功的包
ansible web -m pip -a ‘name=flask‘ # 安装flask模块

service

ps -ef|grep nginx #查看进程
ss -tnlp # 查看端口信息
systemctl start nginx # centos7
service nginx start  # centos6
systemctl enabled nginx # centos7 开机自启动
chkconfig nginx on # centos6开机自启动
ansible web -m service -a ‘name=nginx state=started‘ # 启动nginx
ansible web -m service -a ‘name=nginx state=stopped‘ # 关闭nginx

计划任务

cron

* * * * * job
分 时 日 月 周 任务
0 */2 *  * *  job  每隔两个小时
0 12,13 * * * job 12点和13点
0 12-17 * * * job 12点到17点
0 12-17/2 * * 1,3,6,0 周1,周3,周6,周7 12点到17点每隔两个小时
crontab -e # 编辑计划任务
crontab -l # 查看计划任务
crontab -r # 删除计划任务
day  天
disabled 禁用
hour 小时
job 任务
minute 分钟
month 月
name 任务名字
weekday 周
minute=26 值在第26分钟

ansible db -m cron -a ‘minute=26 job="touch /tmp/xzmly.txt" name=touchfile‘ # 新建一个计划任务
ansible db -m cron -a ‘name=touchfile state=absent‘ # 删除一个计划任务
ansible db -m cron -a ‘minute=26 job="touch /tmp/xzmly.txt" name=touchfile disabled=yes‘  # 禁用计划任务,以#表示禁用

用户相关

user

用户:
    管理员  root 0
    普通用户
        系统用户  不能登录  1-999 centos7 1-499 centos6
        登录用户  可以登录  1000-65535 centos7 500-65535 centos6
用户组:
    管理员组 root 0
    系统用户组 1-999 centos7 1-499 centos6
    登录用户组 1000-65535 centos7 500-65535 centos6 

 -d  指定用户的家目录
 -g  指定用户的组
 -G  执行用户的附加组
 -s  指定登录后使用的shell
 -r 创建一个系统组
 useradd -r wusir  创建系统用户, 从999倒序
 useradd -s /sbin/nologin alexsb 创建的是普通用户,从1000开始升序
  useradd -d /opt/alexsb2 alexsb2 创建用户时指定用户的家目录
   useradd -u 3000 alexsb6 # 创建用户并指定用户的uid
  userdel alex 删除用户
  userdel -r alexsb2 删除用户并删除用户的家目录

\

group 组
groups 附加组
home 家目录
name 用户名
password 密码
remove ?
shell 用户登录后使用的shell
system 创建一个系统用户
uid 用来指定用户的id
state 状态
ansible db -m user -a ‘name=wulaoshi uid=4000 home=/opt/wulaoshi groups=root shell=/sbin/nologin‘ #创建一个用户,并指定用户的id,用户的家目录,用户的附加组,用户的shell
#shell=/sbin/nologin 无需输入密码登录ansible db -m user -a ‘name=wulaoshi state=absent‘ #删除用户但是不删除用户的家目录
ansible db -m user -a ‘name=wulaoshi3 state=absent remove=yes‘ # 删除用户并删除用户的家目录

在查询创建的新用户时,可以使用

cat /etc/passwd
cat /etc/passwd|grep 用户名

group

  groupadd yuchao 创建用户组
  groupdel yuchao 删除用户组
gid 组的id
name 组名
system 系统组
state
ansible db -m group -a ‘name=wulaoshi system=yes‘ #创建系统组
ansible db -m group -a ‘name=wulaoshi state=absent‘ # 删除组

ep

web

创建一个用户组alex10

ansible web -m group -a ‘name=alex10‘

创建一个用户wusir10

ansible web -m user -a ‘name=wusir10‘

把/etc/fstab文件复制到远程主机上/tmp/f

ansible web -m copy -a ‘src=/etc/fstab dest=/tmp/f‘

安装nginx,并启动,设置开机自启动

ansible web -m yum -a ‘name=nginx‘

ansible web -m service -a ‘name=nginx enabled=yes‘

ansible 剧本

yaml

是一个编程语言
xml 是用来写配置文件的一个语言
ini
yaml

字典: key: value


列表: [] -


后缀名 yaml yml

 

ansible-playbook命令格式

执行顺序: 从上往下

特性:幂等性 不管执行多少遍,结果都是一样的

ansible-playbook [options] playbook.yml [playbook2 ...]
-C, --check   # 检查,白跑,干跑
-f FORKS, --forks=FORKS #用来做并发
--list-hosts # 列出主机列表
--syntax-check # 语法检查 

简单用法 # 格式非常严谨

需要创建一个 p1.yml 文件

标准:

- hosts: web
  tasks:
  - name: creategroup
    group: name=alex10
  - name: cretaeuser
    user: name=wusir10

伪代码

hosts: gb
tasks:
- name: 第san个姑娘
  dong: 第san个姑娘

传参

标准:

- hosts: web
  tasks:
  - name: create{{ user }}
    user: name={{ user}}

#在运行前需要检查代码是否准确哦

第一种方式

ansible-playbook -e ‘user=alexsb10‘ p2.yml

第二种方式 在/etc/ansible/hosts 文件修改

[db]
192.168.107.132 user=alexsb11
192.168.107.133 user=alexsb12

第三种方式 在/etc/ansible/hosts 文件修改

#放在[db]下面
[db]
192.168.107.132
192.168.107.133 [db:vars] #表示组的参数
user=alexsb13

第四种方式

- hosts: db
  vars:
  - user: alexsb14
  tasks:
  - name: create{{ user }}
    user: name={{ user}}i

第五种传参方式

- hosts: db
  tasks:
  - name: sum
    shell: echo 7+8|bc
    register: user
  - name: createuser
    user: name={{user.stdout}}

传参方式的优先级

-e > playbook > hosts文件

内容总结

模块

- yum 安装包
  - @
- pip 安装python的模块
  - requirements
- service
  - enabled=yes
- corn
  - disabled=yes
- user
  - system=yes
- group
  - system=yes

剧本

- yaml 格式 (格式要求比较严格)
- 传参
  - -e
  - hosts文件 主机列表后面
  - hosts文件[groupname:vars]
  - playbook里面写vars
  - register
- 传参的优先级
  - -e > playbook > hosts

原文地址:https://www.cnblogs.com/zhangqing979797/p/10408649.html

时间: 2024-10-13 15:16:28

ansible 软件相关模块,剧本的相关文章

ansible 软件相关模块

一 yum 模块 1.yum配置源(/etc/yum.repos.d/epel.repo) 1 [epel] 2 name=Extra Packages for Enterprise Linux 7 - $basearch #名字 3 baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file: 4 failovermethod=priority 5 enabled=1 # 是否

Ansible 命令相关模块command, shell, raw, expect, script, telnet[转]

本文主要介绍Ansible的几个命令模块,包括: command - 在远程节点上执行命令 shell - 让远程主机在shell进程下执行命令 script - 将本地script传送到远程主机之后执行 raw - 执行低级的和脏的SSH命令 expect - 执行命令并响应提示 telnet - 执行低级的和脏的telnet命令 command模块 简介 command模块用于在给的的节点上运行系统命令,比如echo hello. 它不会通过shell处理命令,因此不支持像$HOME这样的变

Linux中ansible批量管理软件部署及剧本编写

服务器版本信息: Centos6.9 [[email protected] ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ansible软件介绍 ansible是一个基于Python开发的自动化运维工具! 其功能实现基于SSH远程连接服务! ansible可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等

ansible软件模块参数

ansible-doc -l|wc -l1378 ansible 管理主机信息或者主机组信息 -m 模块名称 -a 相关模块参数 主机信息:远程主机IP地址 远程主机组名称 远程所有主机all -m 指定相应模块 -a 利用模块中某些参数功能 (一)命令类型模块: 第一个模块:command 官方参考链接:http://docs.ansible.com/ansible/latest/modules/command_module.html 参数:chdir---在执行某个命令前,先切换目录 [[e

运维自动化好帮手:ansible软件入门篇

一:关于自动化我们要知道的 1.自动化是什么? IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本.可以说自动化运维一定是IT运维高层面的重要属性之一. 2.为什么要使用自动化技术? 当公司规模扩大,从初期的几台服务器发展到庞大的数据中心时,自然而然的单靠人工就无法满足在技术.业务.管理等方面的要求,那么标准化.自动化.架构优化.过程优化等降低IT服务成本的因素越来越被人们所重视. 3.自动化的目的是什么? 自动化作为其重要属性之一

自动化运维之Ansible安装与模块应用

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

02.ansible的常用模块

可以从ansible-doc -l | grep来找出想要的模块.再使用ansible-doc -s module_name来查看此模块的用法.官方模块列表和说明:https://docs.ansible.com/ansible/latest/modules_by_category.html 关于模块的使用方法,需要注意的是"state".很多模块都会有该选项,且其值几乎都包含有"present"和"absent",表示肯定和否定的意思. ans

超详细Ansible安装及模块详解

简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信; (2).host inventory:指定操作的主机,

自动化运维工具ansible——安装及模块管理

ansible简介 ?ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ?ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host inventory:指