ansible 剧本

yum

rpm 和yum 的区别

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

yum 源配置

[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‘)
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"‘ # 安装包组

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 周
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 删除用户并删除用户的家目录

  groupadd yuchao 创建用户组
  groupdel yuchao 删除用户组
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
ansible db -m user -a ‘name=wulaoshi state=absent‘ #删除用户但是不删除用户的家目录
ansible db -m user -a ‘name=wulaoshi3 state=absent remove=yes‘ # 删除用户并删除用户的家目录

group

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

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 # 语法检查 

简单用法

- 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

第一种方式

[db]
192.168.107.132 user=alexsb11
192.168.107.133 user=alexsb12

第二种方式

[db:vars] #表示组的参数
user=alexsb13

第三种方式

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

第四种方式

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

第五种方式

传参方式的优先级

-e > playbook vars > hosts文件

原文地址:https://www.cnblogs.com/zbw582922417/p/10414885.html

时间: 2024-11-08 15:43:51

ansible 剧本的相关文章

ansible剧本编写

作者:Georgekai 归档:学习笔记 2018/1/31 ansible剧本编写 1.1.1 ansible基于口令方式免交互登录 1.编辑/etc/ansible/hosts管理配置文件,实现基于口令免交互登录 vim /etc/ansible/hosts [client] 172.16.1.7 172.16.1.31 ansible_ssh_user=root ansible_ssh_pass=123456 172.16.1.41 2.测试是否需要进行交互登录 [[email prote

06 ansible剧本功能实践介绍

ansible剧本功能实践介绍================================================================================================01. 编写剧本的重要功能介绍 a 在剧本中设置变量信息 OK b 在剧本中设置注册信息 OK 执行剧本时,可以显示输出命令结果信息 b 在剧本中设置判断信息 OK c 在剧本中设置循环信息 d 在剧本中设置错误忽略 d 在剧本中设置标签信息 e 在剧本中设置触发信息 f 在剧

Ansible剧本管理(实例解释!!!)

inventory主机清单 ansible默认的主机清单是/etc/ansible/hosts文件,主机清单可以手动设置,也可以通过Dynamic Inventory动态生成,一般主机名使用FQDN vim /etc/ansible/hosts [webserver] #方括号设置组名 www1.example.org #定义被监控主机,这边可以是主机名也可以是IP地址,主机名需要修改/etc/hosts文件 www2.example.org:2222 #冒号后定义远程连接端口,默认是ssh的2

CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解

环境说明: 192.168.8.39 node2.chinasoft.com 192.168.8.42 node4.chinasoft.com 192.168.8.40 ansible管理服务器 192.168.8.77 VIP 192.168.8.20 nfs服务器 1.双机互信需要设置好,hosts文件需要解析好,时间要同步,配置好yum源 双击互信及Hosts文件配置,参考:http://blog.csdn.net/reblue520/article/details/51213030 最好

用ansible剧本搭建lnmp

首先在主服务器上搭建ansible直接用云yum装就可以, yum -y install ansible 如果copy报错一下的语句 "msg": "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!" 需要在被分发的服务器上安装支持包 [[email protected] ~]# mount /dev/sr0 /media/cdrom/ mo

ansible安装应用及playbook剧本的定义

在配置集群时,每个节点上有很多相同的配置,如启动服务相同.安装程序.提供相同的配置文件,甚至定制相同的任务计划来定期执行某些操作等.如果你管理的只是三两个节点配置起来还是相当简单的,但是有三五十台,甚至上百台你还要自已一个一个手动来配置,那就太痛苦了.因些我们就需要能实现批量管理的一套组件,ansible就是实现这样管理的工具. ansible以它强大功能和简单上手的应用,在2012年获OSS(Open Source Software,开源软件 开放源代码软件)一项大奖,评为前十名,评为最有用的

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软件剧本书写规范

编写剧本规范:http://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html遵循pyyaml①. - 用法说明,表示列表显示的内容水果信息: 苹果 香蕉 西瓜②. : 用法说明:姓名: 张三性别: 男人员信息: 运维人员: sa 开发人员: dev 存储人员: dba③. 空格 用法说明:对内容进行分级时,需要有两个空格表示分级软件安装步骤: 服务端安装步骤:第一个里程碑: 检查软件是否安装第二个里程碑: 编

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: failov