Saltstack Official Linux Formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.rst 24KB

9 years ago
9 years ago
9 years ago
9 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074
  1. =====
  2. Linux
  3. =====
  4. Linux Operating Systems.
  5. * Ubuntu
  6. * CentOS
  7. * RedHat
  8. * Fedora
  9. * Arch
  10. Sample pillars
  11. ==============
  12. Linux system
  13. ------------
  14. Basic Linux box
  15. .. code-block:: yaml
  16. linux:
  17. system:
  18. enabled: true
  19. name: 'node1'
  20. domain: 'domain.com'
  21. cluster: 'system'
  22. environment: prod
  23. timezone: 'Europe/Prague'
  24. utc: true
  25. Linux with system users, some with password set
  26. .. code-block:: yaml
  27. linux:
  28. system:
  29. ...
  30. user:
  31. jdoe:
  32. name: 'jdoe'
  33. enabled: true
  34. sudo: true
  35. shell: /bin/bash
  36. full_name: 'Jonh Doe'
  37. home: '/home/jdoe'
  38. email: 'jonh@doe.com'
  39. jsmith:
  40. name: 'jsmith'
  41. enabled: true
  42. full_name: 'Password'
  43. home: '/home/jsmith'
  44. password: userpassword
  45. Configure sudo for users and groups under ``/etc/sudoers.d/``.
  46. This ways ``linux.system.sudo`` pillar map to actual sudo attributes:
  47. .. code-block:: jinja
  48. # simplified template:
  49. Cmds_Alias {{ alias }}={{ commands }}
  50. {{ user }} {{ hosts }}=({{ runas }}) NOPASSWD: {{ commands }}
  51. %{{ group }} {{ hosts }}=({{ runas }}) NOPASSWD: {{ commands }}
  52. # when rendered:
  53. saltuser1 ALL=(ALL) NOPASSWD: ALL
  54. .. code-block:: yaml
  55. linux:
  56. system:
  57. sudo:
  58. enabled: true
  59. alias:
  60. host:
  61. LOCAL:
  62. - localhost
  63. PRODUCTION:
  64. - db1
  65. - db2
  66. runas:
  67. DBA:
  68. - postgres
  69. - mysql
  70. SALT:
  71. - root
  72. command:
  73. # Note: This is not 100% safe when ALL keyword is used, user still may modify configs and hide his actions.
  74. # Best practice is to specify full list of commands user is allowed to run.
  75. SUPPORT_RESTRICTED:
  76. - /bin/vi /etc/sudoers*
  77. - /bin/vim /etc/sudoers*
  78. - /bin/nano /etc/sudoers*
  79. - /bin/emacs /etc/sudoers*
  80. - /bin/su - root
  81. - /bin/su -
  82. - /bin/su
  83. - /usr/sbin/visudo
  84. SUPPORT_SHELLS:
  85. - /bin/sh
  86. - /bin/ksh
  87. - /bin/bash
  88. - /bin/rbash
  89. - /bin/dash
  90. - /bin/zsh
  91. - /bin/csh
  92. - /bin/fish
  93. - /bin/tcsh
  94. - /usr/bin/login
  95. - /usr/bin/su
  96. - /usr/su
  97. ALL_SALT_SAFE:
  98. - /usr/bin/salt state*
  99. - /usr/bin/salt service*
  100. - /usr/bin/salt pillar*
  101. - /usr/bin/salt grains*
  102. - /usr/bin/salt saltutil*
  103. - /usr/bin/salt-call state*
  104. - /usr/bin/salt-call service*
  105. - /usr/bin/salt-call pillar*
  106. - /usr/bin/salt-call grains*
  107. - /usr/bin/salt-call saltutil*
  108. SALT_TRUSTED:
  109. - /usr/bin/salt*
  110. users:
  111. # saltuser1 with default values: saltuser1 ALL=(ALL) NOPASSWD: ALL
  112. saltuser1: {}
  113. saltuser2:
  114. hosts:
  115. - LOCAL
  116. # User Alias DBA
  117. DBA:
  118. hosts:
  119. - ALL
  120. commands:
  121. - ALL_SALT_SAFE
  122. groups:
  123. db-ops:
  124. hosts:
  125. - ALL
  126. - '!PRODUCTION'
  127. runas:
  128. - DBA
  129. commands:
  130. - /bin/cat *
  131. - /bin/less *
  132. - /bin/ls *
  133. salt-ops:
  134. hosts:
  135. - 'ALL'
  136. runas:
  137. - SALT
  138. commands:
  139. - SUPPORT_SHELLS
  140. salt-ops-2nd:
  141. name: salt-ops
  142. nopasswd: false
  143. runas:
  144. - DBA
  145. commands:
  146. - ALL
  147. - '!SUPPORT_SHELLS'
  148. - '!SUPPORT_RESTRICTED'
  149. Linux with package, latest version
  150. .. code-block:: yaml
  151. linux:
  152. system:
  153. ...
  154. package:
  155. package-name:
  156. version: latest
  157. Linux with package from certail repo, version with no upgrades
  158. .. code-block:: yaml
  159. linux:
  160. system:
  161. ...
  162. package:
  163. package-name:
  164. version: 2132.323
  165. repo: 'custom-repo'
  166. hold: true
  167. Linux with package from certail repo, version with no GPG verification
  168. .. code-block:: yaml
  169. linux:
  170. system:
  171. ...
  172. package:
  173. package-name:
  174. version: 2132.323
  175. repo: 'custom-repo'
  176. verify: false
  177. Linux with autoupdates (automatically install security package updates)
  178. .. code-block:: yaml
  179. linux:
  180. system:
  181. ...
  182. autoupdates:
  183. enabled: true
  184. mail: root@localhost
  185. mail_only_on_error: true
  186. remove_unused_dependencies: false
  187. automatic_reboot: true
  188. automatic_reboot_time: "02:00"
  189. Linux with cron jobs
  190. .. code-block:: yaml
  191. linux:
  192. system:
  193. ...
  194. job:
  195. cmd1:
  196. command: '/cmd/to/run'
  197. enabled: true
  198. user: 'root'
  199. hour: 2
  200. minute: 0
  201. Linux security limits (limit sensu user memory usage to max 1GB):
  202. .. code-block:: yaml
  203. linux:
  204. system:
  205. ...
  206. limit:
  207. sensu:
  208. enabled: true
  209. domain: sensu
  210. limits:
  211. - type: hard
  212. item: as
  213. value: 1000000
  214. Enable autologin on tty1 (may work only for Ubuntu 14.04):
  215. .. code-block:: yaml
  216. linux:
  217. system:
  218. console:
  219. tty1:
  220. autologin: root
  221. # Enable serial console
  222. ttyS0:
  223. autologin: root
  224. rate: 115200
  225. term: xterm
  226. To disable set autologin to `false`.
  227. Set ``policy-rc.d`` on Debian-based systems. Action can be any available
  228. command in ``while true`` loop and ``case`` context.
  229. Following will disallow dpkg to stop/start services for cassandra package automatically:
  230. .. code-block:: yaml
  231. linux:
  232. system:
  233. policyrcd:
  234. - package: cassandra
  235. action: exit 101
  236. - package: '*'
  237. action: switch
  238. Set system locales:
  239. .. code-block:: yaml
  240. linux:
  241. system:
  242. locale:
  243. en_US.UTF-8:
  244. default: true
  245. "cs_CZ.UTF-8 UTF-8":
  246. enabled: true
  247. Kernel
  248. ~~~~~~
  249. Install always up to date LTS kernel and headers from Ubuntu trusty:
  250. .. code-block:: yaml
  251. linux:
  252. system:
  253. kernel:
  254. type: generic
  255. lts: trusty
  256. headers: true
  257. Load kernel modules and add them to `/etc/modules`:
  258. .. code-block:: yaml
  259. linux:
  260. system:
  261. kernel:
  262. modules:
  263. - nf_conntrack
  264. - tp_smapi
  265. - 8021q
  266. Install specific kernel version and ensure all other kernel packages are
  267. not present. Also install extra modules and headers for this kernel:
  268. .. code-block:: yaml
  269. linux:
  270. system:
  271. kernel:
  272. type: generic
  273. extra: true
  274. headers: true
  275. version: 4.2.0-22
  276. Systcl kernel parameters
  277. .. code-block:: yaml
  278. linux:
  279. system:
  280. kernel:
  281. sysctl:
  282. net.ipv4.tcp_keepalive_intvl: 3
  283. net.ipv4.tcp_keepalive_time: 30
  284. net.ipv4.tcp_keepalive_probes: 8
  285. CPU
  286. ~~~
  287. Disable ondemand cpu mode service:
  288. .. code-block:: yaml
  289. linux:
  290. system:
  291. cpu:
  292. governor: performance
  293. Huge Pages
  294. ~~~~~~~~~~~~
  295. Huge Pages give a performance boost to applications that intensively deal
  296. with memory allocation/deallocation by decreasing memory fragmentation.
  297. .. code-block:: yaml
  298. linux:
  299. system:
  300. kernel:
  301. hugepages:
  302. small:
  303. size: 2M
  304. count: 107520
  305. mount_point: /mnt/hugepages_2MB
  306. mount: false/true # default false
  307. large:
  308. default: true # default automatically mounted
  309. size: 1G
  310. count: 210
  311. mount_point: /mnt/hugepages_1GB
  312. Note: not recommended to use both pagesizes in concurrently.
  313. Intel SR-IOV
  314. ~~~~~~~~~~~~
  315. PCI-SIG Single Root I/O Virtualization and Sharing (SR-IOV) specification defines a standardized mechanism to virtualize PCIe devices. The mechanism can virtualize a single PCIe Ethernet controller to appear as multiple PCIe devices.
  316. .. code-block:: yaml
  317. linux:
  318. system:
  319. kernel:
  320. sriov: True
  321. unsafe_interrupts: False # Default is false. for older platforms and AMD we need to add interrupt remapping workaround
  322. rc:
  323. local: |
  324. #!/bin/sh -e
  325. # Enable 7 VF on eth1
  326. echo 7 > /sys/class/net/eth1/device/sriov_numvfs; sleep 2; ifup -a
  327. exit 0
  328. Isolate CPU options
  329. ~~~~~~~~~~~~~~~~~~~
  330. Remove the specified CPUs, as defined by the cpu_number values, from the general kernel
  331. SMP balancing and scheduler algroithms. The only way to move a process onto or off an
  332. "isolated" CPU is via the CPU affinity syscalls. cpu_number begins at 0, so the
  333. maximum value is 1 less than the number of CPUs on the system.
  334. .. code-block:: yaml
  335. linux:
  336. system:
  337. kernel:
  338. isolcpu: 1,2,3,4,5,6,7 # isolate first cpu 0
  339. Repositories
  340. ~~~~~~~~~~~~
  341. RedHat based Linux with additional OpenStack repo
  342. .. code-block:: yaml
  343. linux:
  344. system:
  345. ...
  346. repo:
  347. rdo-icehouse:
  348. enabled: true
  349. source: 'http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/'
  350. pgpcheck: 0
  351. Ensure system repository to use czech Debian mirror (``default: true``)
  352. Also pin it's packages with priority 900.
  353. .. code-block:: yaml
  354. linux:
  355. system:
  356. repo:
  357. debian:
  358. default: true
  359. source: "deb http://ftp.cz.debian.org/debian/ jessie main contrib non-free"
  360. # Import signing key from URL if needed
  361. key_url: "http://dummy.com/public.gpg"
  362. pin:
  363. - pin: 'origin "ftp.cz.debian.org"'
  364. priority: 900
  365. package: '*'
  366. rc.local example
  367. .. code-block:: yaml
  368. linux:
  369. system:
  370. rc:
  371. local: |
  372. #!/bin/sh -e
  373. #
  374. # rc.local
  375. #
  376. # This script is executed at the end of each multiuser runlevel.
  377. # Make sure that the script will "exit 0" on success or any other
  378. # value on error.
  379. #
  380. # In order to enable or disable this script just change the execution
  381. # bits.
  382. #
  383. # By default this script does nothing.
  384. exit 0
  385. Prompt
  386. ~~~~~~
  387. Setting prompt is implemented by creating ``/etc/profile.d/prompt.sh``. Every
  388. user can have different prompt.
  389. .. code-block:: yaml
  390. linux:
  391. system:
  392. prompt:
  393. root: \\n\\[\\033[0;37m\\]\\D{%y/%m/%d %H:%M:%S} $(hostname -f)\\[\\e[0m\\]\\n\\[\\e[1;31m\\][\\u@\\h:\\w]\\[\\e[0m\\]
  394. default: \\n\\D{%y/%m/%d %H:%M:%S} $(hostname -f)\\n[\\u@\\h:\\w]
  395. On Debian systems to set prompt system-wide it's necessary to remove setting
  396. PS1 in ``/etc/bash.bashrc`` and ``~/.bashrc`` (which comes from
  397. ``/etc/skel/.bashrc``). This formula will do this automatically, but will not
  398. touch existing user's ``~/.bashrc`` files except root.
  399. Bash
  400. ~~~~
  401. Fix bash configuration to preserve history across sessions (like ZSH does by
  402. default).
  403. .. code-block:: yaml
  404. linux:
  405. system:
  406. bash:
  407. preserve_history: true
  408. Message of the day
  409. ~~~~~~~~~~~~~~~~~~
  410. ``pam_motd`` from package ``update-motd`` is used for dynamic messages of the
  411. day. Setting custom motd will cleanup existing ones.
  412. .. code-block:: yaml
  413. linux:
  414. system:
  415. motd:
  416. - release: |
  417. #!/bin/sh
  418. [ -r /etc/lsb-release ] && . /etc/lsb-release
  419. if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then
  420. # Fall back to using the very slow lsb_release utility
  421. DISTRIB_DESCRIPTION=$(lsb_release -s -d)
  422. fi
  423. printf "Welcome to %s (%s %s %s)\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"
  424. - warning: |
  425. #!/bin/sh
  426. printf "This is [company name] network.\n"
  427. printf "Unauthorized access strictly prohibited.\n"
  428. RHEL / CentOS
  429. ^^^^^^^^^^^^^
  430. Unfortunately ``update-motd`` is currently not available for RHEL so there's
  431. no native support for dynamic motd.
  432. You can still set static one, only pillar structure differs:
  433. .. code-block:: yaml
  434. linux:
  435. system:
  436. motd: |
  437. This is [company name] network.
  438. Unauthorized access strictly prohibited.
  439. Haveged
  440. ~~~~~~~
  441. If you are running headless server and are low on entropy, it may be a good
  442. idea to setup Haveged.
  443. .. code-block:: yaml
  444. linux:
  445. system:
  446. haveged:
  447. enabled: true
  448. Linux network
  449. -------------
  450. Linux with network manager
  451. .. code-block:: yaml
  452. linux:
  453. network:
  454. enabled: true
  455. network_manager: true
  456. Linux with default static network interfaces, default gateway interface and DNS servers
  457. .. code-block:: yaml
  458. linux:
  459. network:
  460. enabled: true
  461. interface:
  462. eth0:
  463. enabled: true
  464. type: eth
  465. address: 192.168.0.102
  466. netmask: 255.255.255.0
  467. gateway: 192.168.0.1
  468. name_servers:
  469. - 8.8.8.8
  470. - 8.8.4.4
  471. mtu: 1500
  472. Linux with bonded interfaces and disabled NetworkManager
  473. .. code-block:: yaml
  474. linux:
  475. network:
  476. enabled: true
  477. interface:
  478. eth0:
  479. type: eth
  480. ...
  481. eth1:
  482. type: eth
  483. ...
  484. bond0:
  485. enabled: true
  486. type: bond
  487. address: 192.168.0.102
  488. netmask: 255.255.255.0
  489. mtu: 1500
  490. use_in:
  491. - interface: ${linux:interface:eth0}
  492. - interface: ${linux:interface:eth0}
  493. network_manager:
  494. disable: true
  495. Linux with vlan interface_params
  496. .. code-block:: yaml
  497. linux:
  498. network:
  499. enabled: true
  500. interface:
  501. vlan69:
  502. type: vlan
  503. use_interfaces:
  504. - interface: ${linux:interface:bond0}
  505. Linux with wireless interface parameters
  506. .. code-block:: yaml
  507. linux:
  508. network:
  509. enabled: true
  510. gateway: 10.0.0.1
  511. default_interface: eth0
  512. interface:
  513. wlan0:
  514. type: eth
  515. wireless:
  516. essid: example
  517. key: example_key
  518. security: wpa
  519. priority: 1
  520. Linux networks with routes defined
  521. .. code-block:: yaml
  522. linux:
  523. network:
  524. enabled: true
  525. gateway: 10.0.0.1
  526. default_interface: eth0
  527. interface:
  528. eth0:
  529. type: eth
  530. route:
  531. default:
  532. address: 192.168.0.123
  533. netmask: 255.255.255.0
  534. gateway: 192.168.0.1
  535. Native Linux Bridges
  536. .. code-block:: yaml
  537. linux:
  538. network:
  539. interface:
  540. eth1:
  541. enabled: true
  542. type: eth
  543. proto: manual
  544. up_cmds:
  545. - ip address add 0/0 dev $IFACE
  546. - ip link set $IFACE up
  547. down_cmds:
  548. - ip link set $IFACE down
  549. br-ex:
  550. enabled: true
  551. type: bridge
  552. address: ${linux:network:host:public_local:address}
  553. netmask: 255.255.255.0
  554. use_interfaces:
  555. - eth1
  556. OpenVswitch Bridges
  557. .. code-block:: yaml
  558. linux:
  559. network:
  560. bridge: openvswitch
  561. interface:
  562. eth1:
  563. enabled: true
  564. type: eth
  565. proto: manual
  566. up_cmds:
  567. - ip address add 0/0 dev $IFACE
  568. - ip link set $IFACE up
  569. down_cmds:
  570. - ip link set $IFACE down
  571. br-ex:
  572. enabled: true
  573. type: bridge
  574. address: ${linux:network:host:public_local:address}
  575. netmask: 255.255.255.0
  576. use_interfaces:
  577. - eth1
  578. Linux with proxy
  579. .. code-block:: yaml
  580. linux:
  581. network:
  582. ...
  583. proxy:
  584. host: proxy.domain.com
  585. port: 3128
  586. Linux with hosts
  587. Parameter purge_hosts will enforce whole /etc/hosts file, removing entries
  588. that are not defined in model except defaults for both IPv4 and IPv6 localhost
  589. and hostname + fqdn.
  590. It's good to use this option if you want to ensure /etc/hosts is always in a
  591. clean state however it's not enabled by default for safety.
  592. .. code-block:: yaml
  593. linux:
  594. network:
  595. ...
  596. purge_hosts: true
  597. host:
  598. # No need to define this one if purge_hosts is true
  599. hostname:
  600. address: 127.0.1.1
  601. names:
  602. - ${linux:network:fqdn}
  603. - ${linux:network:hostname}
  604. node1:
  605. address: 192.168.10.200
  606. names:
  607. - node2.domain.com
  608. - service2.domain.com
  609. node2:
  610. address: 192.168.10.201
  611. names:
  612. - node2.domain.com
  613. - service2.domain.com
  614. Setup resolv.conf, nameservers, domain and search domains
  615. .. code-block:: yaml
  616. linux:
  617. network:
  618. resolv:
  619. dns:
  620. - 8.8.4.4
  621. - 8.8.8.8
  622. domain: my.example.com
  623. search:
  624. - my.example.com
  625. - example.com
  626. options:
  627. - ndots: 5
  628. - timeout: 2
  629. - attempts: 2
  630. DPDK OVS interfaces
  631. --------------------
  632. **DPDK OVS NIC**
  633. .. code-block:: yaml
  634. linux:
  635. network:
  636. bridge: openvswitch
  637. dpdk:
  638. enabled: true
  639. driver: uio/vfio-pci
  640. openvswitch:
  641. pmd_cpu_mask: "0x6"
  642. dpdk_socket_mem: "1024,1024"
  643. dpdk_lcore_mask: "0x400"
  644. memory_channels: 2
  645. interface:
  646. dpkd0:
  647. name: ${_param:dpdk_nic}
  648. pci: 0000:06:00.0
  649. driver: igb_uio/vfio
  650. enabled: true
  651. type: dpdk_ovs_port
  652. n_rxq: 2
  653. bridge: br-prv
  654. br-prv:
  655. enabled: true
  656. type: dpdk_ovs_bridge
  657. **DPDK OVS Bond**
  658. .. code-block:: yaml
  659. linux:
  660. network:
  661. bridge: openvswitch
  662. dpdk:
  663. enabled: true
  664. driver: uio/vfio-pci
  665. openvswitch:
  666. pmd_cpu_mask: "0x6"
  667. dpdk_socket_mem: "1024,1024"
  668. dpdk_lcore_mask: "0x400"
  669. memory_channels: 2
  670. interface:
  671. dpdk_second_nic:
  672. name: ${_param:primary_second_nic}
  673. pci: 0000:06:00.0
  674. driver: igb_uio/vfio
  675. bond: dpdkbond0
  676. enabled: true
  677. type: dpdk_ovs_port
  678. n_rxq: 2
  679. dpdk_first_nic:
  680. name: ${_param:primary_first_nic}
  681. pci: 0000:05:00.0
  682. driver: igb_uio/vfio
  683. bond: dpdkbond0
  684. enabled: true
  685. type: dpdk_ovs_port
  686. n_rxq: 2
  687. dpdkbond0:
  688. enabled: true
  689. bridge: br-prv
  690. type: dpdk_ovs_bond
  691. mode: active-backup
  692. br-prv:
  693. enabled: true
  694. type: dpdk_ovs_bridge
  695. Linux storage
  696. -------------
  697. Linux with mounted Samba
  698. .. code-block:: yaml
  699. linux:
  700. storage:
  701. enabled: true
  702. mount:
  703. samba1:
  704. - enabled: true
  705. - path: /media/myuser/public/
  706. - device: //192.168.0.1/storage
  707. - file_system: cifs
  708. - options: guest,uid=myuser,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm
  709. File swap configuration
  710. .. code-block:: yaml
  711. linux:
  712. storage:
  713. enabled: true
  714. swap:
  715. file:
  716. enabled: true
  717. engine: file
  718. device: /swapfile
  719. size: 1024
  720. Partition swap configuration
  721. .. code-block:: yaml
  722. linux:
  723. storage:
  724. enabled: true
  725. swap:
  726. partition:
  727. enabled: true
  728. engine: partition
  729. device: /dev/vg0/swap
  730. LVM group `vg1` with one device and `data` volume mounted into `/mnt/data`
  731. .. code-block:: yaml
  732. parameters:
  733. linux:
  734. storage:
  735. mount:
  736. data:
  737. enabled: true
  738. device: /dev/vg1/data
  739. file_system: ext4
  740. path: /mnt/data
  741. lvm:
  742. vg1:
  743. enabled: true
  744. devices:
  745. - /dev/sdb
  746. volume:
  747. data:
  748. size: 40G
  749. mount: ${linux:storage:mount:data}
  750. Multipath with Fujitsu Eternus DXL
  751. .. code-block:: yaml
  752. parameters:
  753. linux:
  754. storage:
  755. multipath:
  756. enabled: true
  757. blacklist_devices:
  758. - /dev/sda
  759. - /dev/sdb
  760. backends:
  761. - fujitsu_eternus_dxl
  762. Multipath with Hitachi VSP 1000
  763. .. code-block:: yaml
  764. parameters:
  765. linux:
  766. storage:
  767. multipath:
  768. enabled: true
  769. blacklist_devices:
  770. - /dev/sda
  771. - /dev/sdb
  772. backends:
  773. - hitachi_vsp1000
  774. Multipath with IBM Storwize
  775. .. code-block:: yaml
  776. parameters:
  777. linux:
  778. storage:
  779. multipath:
  780. enabled: true
  781. blacklist_devices:
  782. - /dev/sda
  783. - /dev/sdb
  784. backends:
  785. - ibm_storwize
  786. Multipath with multiple backends
  787. .. code-block:: yaml
  788. parameters:
  789. linux:
  790. storage:
  791. multipath:
  792. enabled: true
  793. blacklist_devices:
  794. - /dev/sda
  795. - /dev/sdb
  796. - /dev/sdc
  797. - /dev/sdd
  798. backends:
  799. - ibm_storwize
  800. - fujitsu_eternus_dxl
  801. - hitachi_vsp1000
  802. Disabled multipath (the default setup)
  803. .. code-block:: yaml
  804. parameters:
  805. linux:
  806. storage:
  807. multipath:
  808. enabled: false
  809. Linux with local loopback device
  810. .. code-block:: yaml
  811. linux:
  812. storage:
  813. loopback:
  814. disk1:
  815. file: /srv/disk1
  816. size: 50G
  817. External config generation
  818. --------------------------
  819. You are able to use config support metadata between formulas and only generate
  820. config files for external use, eg. docker, etc.
  821. .. code-block:: yaml
  822. parameters:
  823. linux:
  824. system:
  825. config:
  826. pillar:
  827. jenkins:
  828. master:
  829. home: /srv/volumes/jenkins
  830. approved_scripts:
  831. - method java.net.URL openConnection
  832. credentials:
  833. - type: username_password
  834. scope: global
  835. id: test
  836. desc: Testing credentials
  837. username: test
  838. password: test
  839. Usage
  840. =====
  841. Set mtu of network interface eth0 to 1400
  842. .. code-block:: bash
  843. ip link set dev eth0 mtu 1400
  844. Read more
  845. =========
  846. * https://www.archlinux.org/
  847. * http://askubuntu.com/questions/175172/how-do-i-configure-proxies-in-ubuntu-server-or-minimal-cli-ubuntu
  848. Documentation and Bugs
  849. ======================
  850. To learn how to install and update salt-formulas, consult the documentation
  851. available online at:
  852. http://salt-formulas.readthedocs.io/
  853. In the unfortunate event that bugs are discovered, they should be reported to
  854. the appropriate issue tracker. Use Github issue tracker for specific salt
  855. formula:
  856. https://github.com/salt-formulas/salt-formula-linux/issues
  857. For feature requests, bug reports or blueprints affecting entire ecosystem,
  858. use Launchpad salt-formulas project:
  859. https://launchpad.net/salt-formulas
  860. You can also join salt-formulas-users team and subscribe to mailing list:
  861. https://launchpad.net/~salt-formulas-users
  862. Developers wishing to work on the salt-formulas projects should always base
  863. their work on master branch and submit pull request against specific formula.
  864. https://github.com/salt-formulas/salt-formula-linux
  865. Any questions or feedback is always welcome so feel free to join our IRC
  866. channel:
  867. #salt-formulas @ irc.freenode.net