yum能夠解決依賴關係
rpm 全稱readhat package manager(紅帽包管理工具),須要本身解決依賴
查看yum源配置python
cat /etc/yum.repos.d/epel.repo
[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 install -y nginx
注:一個包組中有一類功能對於各個軟件的處理linux
yum grouplist #查看包組信息
yum groupinstall 包組名 #安裝包組
disablerepo #禁用源
enablerepo #啓用源
name #包名
static #狀態,包括安裝和卸載
ansible web -m yum -a 'name=wget'
ansible web -m copy -a 'src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo'
ansible web -m yum -a 'name=python2-pip' #下載安裝pip包
ansible web -m yum -a 'name=wget state=absent'
ansible web -m yum -a 'name="@Development Tools"'
pip freeze > a.txt
pip install -r a.txt
pip install 包名
pip list
ansible web -m pip -a 'name=flask'
requirements #安裝電腦上的全部
ansible web -m yum -a 'name=nginx'
systemctl start nginx #centos7
service nginx start #centos6
ps -ef|grep nginx
ss -tnlp
systemctl enabled nginx #centos7開機自啓動
chkconfig nginx on #centos6開機自啓動
ansible web -m service -a 'name=nginx,static=started'
ss -tnlp
ansible web -m service -a 'name=nginx,ststic=stoped'
分時日月周 任務
crontab 0 */2 * * * pwd # 每兩個小時執行一次命令
crontab -e
crontab -l
day 天
disabled 禁用
hour 小時
job 任務
minute 分鐘
month 月
name 任務名字
weekday 周
ansible web -m cron -a 'minute=27 job="touch /tmp/aaaaaaa.txt" name=touchfile'
ansible web -m cron -a 'name=touchfile state=absent'
ansible web -m cron -a 'minute=30 job="touch /tmp/bbbb.txt" name=touchfile2 disabled=yes'
管理員 root uid 0 普通用戶 系統用戶 不能登陸系統 uid 1-999 centos7,uid 1-499 centos 6 登陸用戶 能夠登陸 uid 1000-65535 centos7,uid 500-65535 centos6
管理員組 root 0 系統用戶組 uid 1-999 centos7,uid 1-499 centos 6 登陸用戶組 uid 1000-65535 centos7,uid 500-65535 centos6
useradd shy
useradd的參數nginx
-d 指定用戶的家目錄(默認在/home下) -g 指定用戶的組 -G 指定用戶的附加組 -s 指定登錄後使用的shell -r 建立一個系統組(系統用戶)
useradd -r shy 建立一個系統用戶,從999倒敘 useradd -s /sbin/nologin shy #建立普通用戶,從1000開始升序 useradd -d /opt/shy #建立用戶時,指定用戶的家目錄 useradd -u 3000 shy2 #指定uid建立用戶
userdel alex #僅刪除用戶 userdel -r alex #刪除用戶和加目錄
group 組 groups 附加組 home 家目錄 name 用戶名 password 密碼 shell 用戶登陸後使用shell system 建立系統用戶 uid 指定id建立用戶 state 狀態 remove 刪除用戶
ansible web -m user -a 'name=ccc uid=4000 home=/opt/ccc groups=root shell=/sbin/nologin'
ansible web -m user -a 'name=shy static=absent'
ansible web -m user -a 'name=shy static=absent remove=yes'
groupadd shy
groupdel shy
tail -l /etc/group
gid 組的id name 組名 system 系統組 static 狀態
ansible web -m group -a 'name=shy system=yes'
ansible web -m group -a 'name=shy static=absent'
在web組中建立一個用戶組shy1web
ansible web -m group -a 'name=shy1'
在web組中建立一個用戶組shy2shell
ansible web -m group -a 'name=shy2'
把/etc/fstab文件複製到/tmp/f編程
ansible web -m copy -a 'src=/etc/fatab dest=/tmp/f'
安裝nginx,並設置開機自啓flask
ansible web -m service -a 'name=nginx enabled=yes'
當相同的任務屢次執行時,將任務內容編輯到腳本中,之後執行時,執行腳本便可,節省時間centos
經常使用來寫配置文件安全
字典的表示 key:value 列表的表示 -
注:後綴名.yaml或.yml併發
例:
name:shy age:18 addr:heilongjiang hobby: - running - skiing - sleeping
注:yaml對語法要求十分嚴格(:後必定要有一個空格,=先後必定不能有空格)
- hosts: web tasks: - name: creategroup group: name=shy10 - name: createuser user: name=user10
-C, --check # 檢查,白跑,幹跑 -f FORKS, --forks=FORKS #用來作併發 --list-hosts # 列出主機列表 --syntax-check # 語法檢查
ansible-playbook --syntax-check p1.yml
ansible-playbook -C p1.yml
ansible-playbook p1.yml
注:執行順序,從上往下執行
冪等性:無論執行多少遍,結果都是同樣的
- hosts: web tasks: - name: create{{ user }} user: name={{ user}}
ansible-playbook -e 'user=shy11' p2.yml
修改/etc/ansible/hosts文件
[db] 192.168.107.132 user=shy12 192.168.107.133 user=shy13
修改/etc/ansible/hosts文件
[db:vars] #表示組的參數 user=shy14
- hosts: db vars: - user: shy15 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}}
echo 3+4|bc #計算3+4
-e > playbook > hosts